如何在 sqlalchemy 中查询表 [英] How to query a table, in sqlalchemy
本文介绍了如何在 sqlalchemy 中查询表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我现在知道如何查询模型了.假设有一个 Question
模型:
I know how to query on a model now. Suppose there is a Question
model:
class Question(Base):
__tablename__ = "questions"
id=Column(...)
user_id=Column(...)
...
现在,我可以:
question = Session.query(Question).filter_by(user_id=123).one()
但是,现在,我有一张桌子(不是模型)questions
:
But, now, I have a table (not a model) questions
:
questions = Table('questions', Base.metadata,
Column(id, ...),
Column(user_id, ...),
....)
如何像使用模型一样查询它?
How to query it as what I do with models?
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
是否仅适用于模型?如何查询表?
Is filter_by
only work for models? How can I query on tables?
推荐答案
我认为是 Session.query(questions).filter(questions.c.user_id==123).one()
这篇关于如何在 sqlalchemy 中查询表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文