2014-01-31 67 views
0

在Rails中,我習慣於調用Model.find(id)從數據庫中獲取記錄。一個SQLAlchemy類似於Rails的Model#find

現在在SQLAlchemy中,我使用的是db_session.query(Model).filter(Model.id == id)。 SQLAlchemy與Rails的find方法有些相似嗎?

回答

4

有假設你的意思是一個主鍵,是Query.get()API

db_session.query(Model).get(id) 
+0

這可能是接近,如果你從一個語法點看是相同的,但我相信Rails的'如果未找到記錄,find()會拋出異常,而SQLAlchemy的get()如果找不到則返回None。如果你想要引發異常,你應該使用SQLAlchemy的['one()'](http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.one)(儘管這意味着使用'filter()'方法)。 –

+0

這是更近了一步。實際上我正在尋找一個實例化對象的類方法。最後,我用find方法擴展了Base,可行! – TTT

相關問題