簡體   English   中英

如何從 flask-SQLAlchemy 查詢一個 SQL View

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM