8

用户表是:

  • 身份证 (INT)

  • 名称 (STR)

  • 上次登录(日期时间)

为网页请求提供服务,我手头有一个用户 ID,我只想将last_login字段更新为“现在”。

在我看来,有两种方法:

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

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

两者都可以正常工作,但在代码中看起来很恶心。

有谁知道使用 sqlalchemy 进行无查询更新的更优雅方式?是否有另一个 ORM 做对了?

谢谢

4

1 回答 1

23

假设您有一个映射器 UserTable:

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

文档中的附加参数。

于 2009-06-19T11:10:50.247 回答