[英]How to use Flask with mysql (without sqlalchemy - raw sql query)?
[英]How to execute raw sql query and use model objects in Flask with SQLAlchemy
我需要構建一個復雜的查詢,我更喜歡使用原始 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?
如果您對我的模型定義感到好奇,請查看此要點
你可以使用這樣的東西:
query = db.engine.execute("SELECT inventory.id...")
for row in query:
print(row['id'])
...
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.