SQLAlchemy中等价于Django的auto_now, auto_now_add是什么?
在Django中,我们在创建日期字段时可以使用这两个参数:
DateField.auto_now:每次保存对象时,自动将这个字段设置为当前时间。这对于记录“最后修改时间”非常有用。需要注意的是,这里总是使用当前日期,而不是一个你可以随意更改的默认值。
DateField.auto_now_add:在对象首次创建时,自动将这个字段设置为当前时间。这对于记录创建时间非常有用。同样,这里总是使用当前日期,而不是一个你可以随意更改的默认值。
那么在SQLAlchemy中怎么做呢?
2 个回答
0
你仍然可以使用下面的内容:
enter_date = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
在更新数据的时候,sqlalchemy 还会把当前的日期设置为数据更新的时间。
36
最后,在查看了SQLAlchemy的文档后,这应该是正确的方法:
Column('created_on', DateTime, default=datetime.datetime.now)
Column('last_updated', DateTime, onupdate=datetime.datetime.now)
文档链接在这里:
http://docs.sqlalchemy.org/en/latest/core/defaults.html#python-executed-functions