Flask SQLAlchemy 表字段默認值

在網上查到的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類提交數據時添加上去的值,並不適合需要取數據庫所有服務器時間的場合。

wKioL1Sr8yrAvAO6AADlfZ8MM_8742.jpg



後來,發現一種使用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


最新數據庫表效果:

wKioL1Sr9CGSpkYkAADgglLOfkY988.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章