我的密码
class User(db.Model, UserMixin):
uid = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(250), unique=True)
password = db.Column(db.String(250))
name = db.Column(db.String(250))
created_on = db.Column(db.TIMESTAMP, default=False)
modified_on = db.Column(db.TIMESTAMP, onupdate=datetime.datetime.now)
我想创建一个字段timestamp,它将有一个默认值timestamp,onupdate将再次更改为当前时间戳。但是当我运行迁移时,这不会在MySQL中创建具有默认值或onupdate值的字段,我做错了什么?
SQLAlchemy的默认值和SQL默认值之间存在差异。通常,设置SQLAlchemy默认值就足够了,因为通常不应该直接与服务器交互。如果确实要在服务器端呈现默认值,请使用
server_default
和server_onupdate
参数来Column
。就我个人而言,我不喜欢这个解决方案,因为它将行为从您的应用程序移动到一个单独的位置,稍后您可能会忽略它。只需在Python端执行默认值就更简单了:
此外,考虑从使用
datetime.now
更改为datetime.utcnow
,因为UTC更容易在幕后使用。只有在向用户显示某些内容时才转换为本地时间。相关问题 更多 >
编程相关推荐