暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

flask鱼书网制作三十五(数据库软删除)

智趣智学 2019-07-01
683

软删除或假删除

删除数据库中一条记录的时候,

新增加一个属性status,用这个status来表示这条数据是否被删除,比如说我们可以把status设置成SmallInteger这个类型,当SmallInteger的值为1时,说明这条数据是存在的,当问0时说明不存在,这样就可以通过更改SmallInteger的状态来控制数据是否被删除。

因为没有个数据模型都需要一个SmallInteger来控制数据的状态,所以我们需要为所有模型做一个基类模型,然后把status放在基类里,然后让每一个子模型都继承这个基类模型,就实现了每一个子模型都有了sataus这个属性。

基类模型当然写到base里面,先定义一个Base():,然后在Base下面定义一些所有模型都需要的一些共有属性模型,如下:

class Base():
    status = Column(SmallInteger,
default=1)#软删除

因为在Gift里既要继承Base,又要继承db.Model,所以我们可以让Base继承db.Model,然后让Gift继承Base,这样就实现了多继承,如下:

 

Base文件:

from flask_sqlalchemy import SQLAlchemy
from sqlalchemy importColumn,Integer,SmallInteger
db = SQLAlchemy()

classBase(db.Model):
    status = Column(SmallInteger,
default=1)#软删除

 

Gift文件:

from app.models.base import db,Base
from sqlalchemy importColumn,Integer,String,Boolean,ForeignKey

class Gift(Base):
    id = Column(Integer,
primary_key = True)#礼物唯一标识
   
user1 = relationship('User')#引入同模块下的user
   
uid = Column(Integer,ForeignKey('user1.id'))#引入use1模块下的用户id
   
isbn = Column(String(15),nullable=False)
    launched = Column(Boolean,
default=False)#判断礼物是否送出,默认未送出

 


文章转载自智趣智学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论