2014-01-31 2 views
0

레일즈에서 데이타베이스에서 레코드를 가져 오는 데는 Model.find(id)을 호출하는 데 익숙합니다.SQLAlchemy와 Rails의 모델 간 유사 찾기 #

이제 SQLAlchemy에서 db_session.query(Model).filter(Model.id == id)을 사용하고 있습니다. SQLAlchemy는 Rails의 find 메소드와 비슷한 것을 가지고 있습니까?

답변

4

API, 당신은 기본 키를 의미 Query.get()이되는 가정 : 나는 레일을 믿고 있지만

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

이, 아마 당신이보기의 구문 점에서 찾는 경우 동일에 가깝게' 레코드가 발견되지 않으면 find()'는 예외를 던지고 SQLAlchemy의'get()'은 찾을 수 없다면'None'을 반환합니다. 예외를 발생 시키려면 SQLAlchemy의 ['one()'] (http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.one)을 사용해야합니다 (이것은'filter()'메소드를 사용하는 것을 의미합니다). –

+0

이 단계가 가까워졌습니다. 사실 객체를 인스턴스화하는 클래스 메소드를 찾고있었습니다. 결국 나는 find 메소드로 Base를 확장했다. – TTT