在網上查到的SQLAlchemy設置字段默認值的方法都是類似如下方法:
from sqlalchemy.sql.sqltypes import TIMESTAMP class Test(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(32)) create_date = db.Column(TIMESTAMP, default = datetime.datetime)
但這種方法其實這種方法根本就沒有在數據庫裏面設置默認值,只是使用了SQLAlchemy Model類提交數據時添加上去的值,並不適合需要取數據庫所有服務器時間的場合。
後來,發現一種使用SQLAlchemy模型直接在數據庫設置默認值的方法:
#mysql 日期設置默認值必須使用timestamp類型 from sqlalchemy.sql.sqltypes import TIMESTAMP #func用來生成數據庫函數代碼,跟蹤進源代碼看一***釋就明白了 from sqlalchemy.sql import func class Test(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(32)) create_date = db.Column(TIMESTAMP, server_default = func.now()) #注意這裏是server_default
最新數據庫表效果: