在SQLAlchemy中,如何创建"MySQL日期"列?

TIM*_*MEX 14 mysql database orm sqlalchemy date

class Posts(Base):
    __tablename__ = 'posts_posts'
    id = Column(Integer, primary_key = True)
    user_id = Column(Integer, nullable=False)
    body = Column(Text, nullable=True)

    created_at = Column(Date) << is this right?
    updated_at = Column(Date) ??
Run Code Online (Sandbox Code Playgroud)

我还希望该created_at列能够自动设置创建日期.此外,还有updated_at用于在此行更改时随时设置日期的列.

van*_*van 26

您可以提供defaultonupdate参数Column:

def _get_date():
    return datetime.datetime.now()

class Posts(Base):
    #...
    created_at = Column(Date, default=_get_date)
    updated_at = Column(Date, onupdate=_get_date)
Run Code Online (Sandbox Code Playgroud)

有关此文档的详细信息,请参阅文档.

  • 还有更简单的方法:`updated_at = Column(Date,onupdate = datetime.datetime.now)` (22认同)