软删除或假删除
删除数据库中一条记录的时候,
新增加一个属性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)#判断礼物是否送出,默认未送出




