在sqlAlchemy中简单更新
UserTable 表示的是一个用户表,里面有以下几个字段:
id(整数类型)
name(字符串类型)
last_login(日期时间类型)
在处理网页请求时,我手里有一个 用户ID,我只想把 last_login 字段更新为“现在”。
我觉得有两种方法可以做到这一点:
直接使用数据库引擎发出 SQL 语句(这样就不使用映射器了)
或者先查询用户,然后再更新对象
这两种方法都能正常工作,但在代码上看起来都不太好。
有没有人知道用 sqlalchemy 做一个不查询的优雅更新方法?有没有其他的 ORM 做得更好?
谢谢
1 个回答
23
假设你已经有了一个叫做 UserTable 的映射器:
DBSession.query(UserTable).filter_by(id = user_id).\
update({"last_login":datetime.datetime.now()}, synchronize_session=False)
在文档中还有更多的参数说明。