0
在Rails中,我習慣於調用Model.find(id)
從數據庫中獲取記錄。一個SQLAlchemy類似於Rails的Model#find
現在在SQLAlchemy中,我使用的是db_session.query(Model).filter(Model.id == id)
。 SQLAlchemy與Rails的find方法有些相似嗎?
在Rails中,我習慣於調用Model.find(id)
從數據庫中獲取記錄。一個SQLAlchemy類似於Rails的Model#find
現在在SQLAlchemy中,我使用的是db_session.query(Model).filter(Model.id == id)
。 SQLAlchemy與Rails的find方法有些相似嗎?
有假設你的意思是一個主鍵,是Query.get()
在API:
db_session.query(Model).get(id)
這可能是接近,如果你從一個語法點看是相同的,但我相信Rails的'如果未找到記錄,find()會拋出異常,而SQLAlchemy的get()如果找不到則返回None。如果你想要引發異常,你應該使用SQLAlchemy的['one()'](http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.one)(儘管這意味着使用'filter()'方法)。 –
這是更近了一步。實際上我正在尋找一個實例化對象的類方法。最後,我用find方法擴展了Base,可行! – TTT