sqlalchemy中的简单更新

gno*_*sis 8 python sqlalchemy

UserTable是:

  • id(INT)

  • 名称(STR)

  • last_login(DATETIME)

提供网页请求我有一个用户ID,我只想将last_login字段更新为'now'.

在我看来,有两种方式:

  1. 使用db_engine发出直接SQL(丢失映射器)

  2. 或首先查询用户,然后更新对象

两者都工作正常,但在代码中看起来非常恶心.

是否有人知道使用sqlalchemy进行更新 - 无查询的更优雅方式?还有另一个ORM谁有这个权利吗?

谢谢

ebo*_*ebo 23

假设您有一个映射器UserTable:

DBSession.query(UserTable).filter_by(id = user_id).\
    update({"last_login":datetime.datetime.now()}, synchronize_session=False)
Run Code Online (Sandbox Code Playgroud)

文档中的其他参数.