如何在 sqlalchemy 中查询表 [英] How to query a table, in sqlalchemy

查看:25
本文介绍了如何在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆