flask-sqlalchemy中Datetime的创建时间、修改时间,default,server_default,onupdate

时间:2023-12-28 12:03:26

记录第一次创建时间,default

falsk中如下两个字段

create_time1 = db.Column(db.DateTime, default=datetime.now)

create_time2 = db.Column(db.DateTime, default=datetime.now())

两者的区别:

第一个插入的是期望的, 数据的插入时间,每条数据插入时可自动根据当前时间生成

第二条是一个固定的时间, 程序部署的时间,所有的数据都是这个固定时间

实际上默认值在mysql数据库没有体现, 都是sqlalchemy在插入数据时加的

如果想想在生成的table中有默认值使用server_default

name = db.Column(db.String(45), server_default='hh')

当我们要给布尔值类型指定server_default时,需要用到text

from sqlalchemy import text
is_domain = db.Column(db.Boolean,default=False,server_default=text(''))

因为mysql的datetime类型的数据不支持函数, 所以没法指定默认值位当前时间

记录每次修改的时间,onupdate

update_time = db.Column(db.DateTime, default=datetime.now,onupdate=datetime.now)