gpt4 book ai didi

python - 如何使用 SQLAlchemy 在 Flask 中执行原始 sql 查询和使用模型对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:56 25 4
gpt4 key购买 nike

我需要构建一个复杂的查询,我更喜欢使用原始的 postgres。但查询返回 sqlalchemy.engine.result.ResultProxy对象,当我遍历这些对象中的每一个都是一个 sqlalchemy.engine.result.RowProxy对象

search_term = "%{0}%".format(d)
items = db.engine.execute("SELECT inventory.id,inventory.location,inventory.amount,inventory.units, plant_material.variety FROM inventory LEFT JOIN plant_material ON inventory.plant_material_id = plant_material.id WHERE plant_material.variety ILIKE %s", (search_term))

此标准查询返回我在 Marshmallow 中定义的模型对象,<class 'app.models.Inventory'>:

Inventory.query.filter(Inventory.common_name.like(search_term)).limit(10)

如何返回 models.Inventory 对象并使用原始 sql?

如果您对我的模型定义感到好奇,请查看此 gist

最佳答案

https://docs.sqlalchemy.org/en/14/orm/queryguide.html#selecting-orm-entities-and-attributes

from sqlalchemy.sql import text, select
db.session.execute(select(ModelClass).from_statement(text("SELECT ..."))).scalars().all()

关于python - 如何使用 SQLAlchemy 在 Flask 中执行原始 sql 查询和使用模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32485406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com