[英]How to query a SQL View from flask-SQLAlchemy
我有權訪問數據庫(MySQL,以防萬一)以訪問我需要的一些數據,但我無法直接訪問表,數據通過 SQL 視圖公開。
我想使用 flask 將它包裝在一個小的 API 中。對於數據庫連接,我打算使用 SQLAlchemy(只是因為它是我在 python 中知道的唯一數據庫包裝器)。
問題是,我已經通過 Inte.net 閱讀了很多文檔、數十篇 stackoverflow 帖子和指南,但我似乎無法找到一種方法來查詢來自 flask-SQLAlchemy 的 SQL Views。
在文檔中,他們總是使用模型。 我試圖將我的視圖定義為 Model,但我得到could not assemble any primary key columns for mapped table 'MySQLView'
。
我試圖做什么:
class MyView(db.Model):
__tablename__ = "my_view_name_in_sql"
db.Column("id", db.Integer, primary_key=True)
db.Column("sample_id", db.String)
{...etc}
有沒有辦法做到這一點,或者我應該選擇不使用 flask-SQLAlchemy 並改用其他東西?
我認為這里有一些答案可以處理您的情況,尤其是 LeoRochael 的答案,他建議使用https://pypi.org/project/sqlalchemy-views/package 。我建議檢查您是否可以 - 或不能訪問數據庫的元數據,我認為這真的可以幫助您避免手動制作模型
db_engine = sqlalchemy_package.create_engine("mysql+...")
db_metadata = db.MetaData(bind=db_engine)
然后您可以嘗試直接制作表格,或者使用元數據制作視圖,就像我鏈接的答案一樣。
your_table = db.Table("my_view_name_in_sql", db_metadata, autoload=True)
view_definition = your_table.select()
your_view = CreateView(your_table, view_definition, or_replace=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.