2009-06-19 40 views
7

用戶表是:簡單的更新在SQLAlchemy的

  • ID(INT)

  • 名(STR)

  • LAST_LOGIN(DATETIME)

服務網頁要求我有一個用戶ID手中,我只希望噸o將last_login字段更新爲'now'。

在我看來,有2種方式:

  1. 問題使用db_engine(失去映射器)

  2. 或查詢用戶,然後再更新對象

  3. 直接SQL

這兩個工作正常,但看起來相當惡劣的代碼。

是否有人知道使用sqlalchemy做更新無查詢更優雅的方法?有另一個ORM誰擁有這個權利嗎?

感謝

回答

23

假設你在的地方有一個映射用戶表:

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

docs其他參數。

+1

指向文檔的實際鏈接:http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.update – NorthCat 2015-06-19 15:52:55