如何返回多个模型/表flask-sqlalchemy?

cj cabero

我想从多个表中获取数据,所以我用sqlalchemy做到了:

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()


a = db.aliased(Employee, name='Employee')
b = db.aliased(Person, name='Person')
c = db.aliased(PositionFulfillment, name='PositionFulfillment')
d = db.aliased(Position, name='Position')
e = db.aliased(PositionType, name='PositionType')
f = db.aliased(Party, name='Party')

data = db.session.query(a, b, e, f) \
    .join(b, a.entity_id == b.entity_id) \
    .join(c, a.entity_id == c.party_id) \
    .join(d, c.position_id == d.id) \
    .join(e, d.position_type_id == e.id) \
    .join(f, d.party_id == f.id) \
    .all()

但是当我尝试使用分页时,像这样:

page = request.args.get('page', 1, type=int)
count = request.args.get('count', 10, type=int)

a = db.aliased(Employee, name='Employee')
b = db.aliased(Person, name='Person')
c = db.aliased(PositionFulfillment, name='PositionFulfillment')
d = db.aliased(Position, name='Position')
e = db.aliased(PositionType, name='PositionType')
f = db.aliased(Party, name='Party')

pagination = db.session.query(a, b, e, f) \
    .join(b, a.entity_id == b.entity_id) \
    .join(c, a.entity_id == c.party_id) \
    .join(d, c.position_id == d.id) \
    .join(e, d.position_type_id == e.id) \
    .join(f, d.party_id == f.id) \
    .paginate(page, per_page=count, error_out=False)

data = pagination.items

它给出了这个错误:

AttributeError: 'Query' object has no attribute 'paginate'

根据这个stackoverflow问题

引用SQLAlchemy Query的“查询”和引用Flask-SQLALchemy BaseQuery的BaseQuery之间有区别,后者恰好具有paginate()函数。

如果我想使用paginate()函数,我必须像这样进行查询,

Employee.query.join()....paginate(...)

但这只会返回Employee模型中的数据列表,我也希望能够访问其他表/模型中的数据。

如何使用Flask-Sqalchemy查询多个表并从每个表或其中的一些返回数据,以便我可以使用分页功能?

谢谢,

chishaku

如您提到的另一个SO问题中所述,您只能在BaseQuery对象上调用paginate()函数。

Employee.query.join()....paginate(...)

要访问其他表中的数据,请联接其他表并将所需的列传递给add_columns()函数。

Employee.query.join(Person).add_columns(Employee.id, Person.name).paginate(...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

flask-sqlalchemy:如何定义“注释”模型(多个外键引用同一张表)?

来自分类Dev

flask-sqlalchemy:如何定义“注释”模型(多个外键引用同一张表)?

来自分类Dev

SQLAlchemy,对多个表使用相同的模型

来自分类Dev

Flask + SqlAlchemy ALTER表

来自分类Dev

如何更新 Flask-SQLAlchemy 关联表?

来自分类Dev

在flask-sqlalchemy中无法检索包含多个单词的模型

来自分类Dev

使用 Flask-Sqlalchemy 从某个模型创建各种表

来自分类Dev

如何在SQLAlchemy中删除多个表

来自分类Dev

将Flask SQLAlchemy模型与常规SQLAlchemy结合使用

来自分类Dev

跨多个表的SQLAlchemy关系

来自分类Dev

如何在现有的sqlalchemy模型中使用flask-sqlalchemy?

来自分类Dev

如何解决在香草SQLAlchemy和Flask-SQLAlchemy中使用相同模型的方法?

来自分类Dev

如何在现有的sqlalchemy模型中使用flask-sqlalchemy?

来自分类Dev

Flask-Sqlalchemy + Sqlalchemy-searchable返回空列表

来自分类Dev

flask-sqlalchemy:导入模型出错

来自分类Dev

Flask-SQLAlchemy抽象基础模型

来自分类Dev

带db模型的循环导入的flask sqlalchemy

来自分类Dev

SQLAlchemy模型循环导入

来自分类Dev

Flask SQLAlchemy分页错误

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

Flask-SQLAlchemy TimeoutError

来自分类Dev

Flask/SQLAlchemy Insert Into Database

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

无法安装Flask SQLAlchemy

来自分类Dev

来自外部联接的SQLAlchemy返回模型

来自分类Dev

Flask-SQLAlchemy按多个聚合分组

来自分类Dev

flask sqlalchemy关系中的多个外键

来自分类Dev

Flask-SQLAlchemy插入多个字典

来自分类Dev

从sqlAlchemy表模型中获取表列

Related 相关文章

热门标签

归档