SQLAlchemy 基於模型類對資料庫表進行操作,所以,如果你想對已存在的資料庫表進行操作,就要先為它編寫對應的模型類。
對於簡單的資料庫,比如只有幾張表,沒有複雜的關係,表字段也很少,你可以直接對照表模式手寫模型類。
其他情況下,使用自動化工具 Flask-SQLAcodegen(基於 SQLAcodegen) 自動生成模型類定義會更加方便,首先使用 pip 安裝:
執行下面的命令將模型類輸出到 檔案裡(將覆蓋目標檔案原內容):
這個命令的格式如下:
--flask 選項設定輸出 Flask-SQLAlchemy 模型類,不給出這個選項將直接輸出 SQLAlchemy 原生模型類定義;--outfile 選項設定輸出的目標檔案,不給出這個選項將直接在命令列輸出生成的模型類定義,比如:
你可以使用下面的命令檢視更多可用的設定選項:
SQLAlchemy 基於模型類對資料庫表進行操作,所以,如果你想對已存在的資料庫表進行操作,就要先為它編寫對應的模型類。
對於簡單的資料庫,比如只有幾張表,沒有複雜的關係,表字段也很少,你可以直接對照表模式手寫模型類。
其他情況下,使用自動化工具 Flask-SQLAcodegen(基於 SQLAcodegen) 自動生成模型類定義會更加方便,首先使用 pip 安裝:
執行下面的命令將模型類輸出到 檔案裡(將覆蓋目標檔案原內容):
這個命令的格式如下:
--flask 選項設定輸出 Flask-SQLAlchemy 模型類,不給出這個選項將直接輸出 SQLAlchemy 原生模型類定義;--outfile 選項設定輸出的目標檔案,不給出這個選項將直接在命令列輸出生成的模型類定義,比如:
提示 如上所示,生成的模型類定義會包含一個 db 物件定義和相關匯入語句,你或許需要進行細微的調整。你可以使用下面的命令檢視更多可用的設定選項:
附註 如果使用 SQLAlchemy 而不是 Flask-SQLAlchemy,可以直接使用內建的 Automap 擴充套件或 SQLAcodegen 生成模型類(後者的用法和 Flask-SQLAcodegen 基本相同)。