본문 바로가기
파이썬

파이썬 sqlalchemy에서 테이블을 쿼리하는 방법

by º기록 2020. 11. 7.
반응형

이제 모델을 쿼리하는 방법을 알고 있습니다. Question 모델이 있다고 가정합니다.

class Question(Base):
    __tablename__ = "questions"
    id=Column(...)
    user_id=Column(...)
    ...

이제 할 수 있습니다.

question = Session.query(Question).filter_by(user_id=123).one()

하지만 이제 테이블 (모델이 아님) 질문 이 있습니다.

questions = Table('questions', Base.metadata,
                  Column(id, ...),
                  Column(user_id, ...),
                  ....)

모델로 수행하는 작업으로 쿼리하는 방법은 무엇입니까?

Session.query(questions).filter_by(user_id=123).one()

다음과 같은 오류가보고됩니다.

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "E:\Python27\lib\site-packages\sqlalchemy-0.6.3-py2.7.egg\sqlalchemy\orm\query.py", line 851, in filter_by
  for key, value in kwargs.iteritems()]
File "E:\Python27\lib\site-packages\sqlalchemy-0.6.3-py2.7.egg\sqlalchemy\orm\util.py", line 567, in _entity_descriptor
    desc = entity.class_manager[key]
AttributeError: 'NoneType' object has no attribute 'class_manager'

그러나:

Session.query(questions).all()

괜찮습니다.

filter_by 는 모델에서만 작동합니까? 테이블을 어떻게 쿼리 할 수 ​​있습니까?

 

해결 방법

 

Session.query (questions) .filter (questions.c.user_id == 123) .one () 이라고 생각합니다.

 

참조 페이지 https://stackoverflow.com/questions/3618690

 

 

반응형

댓글