Flask擴充套件 Flask Migrate用法

2021-10-01 22:12:09 字數 2670 閱讀 8575

引用官方文件的話,flask-migrate是使用alembic遷移flask應用程式的sqlalchemy資料庫的擴充套件,可以通過flask命令列或者flask-script擴充套件對資料庫進行操作。

該擴充套件主要用於遷移資料庫。傳統操作flask資料庫一般使用sqlalchemy,表的初始化使用db.create_all,這種方式建立表之前需要先將原來表刪除然後才能生成新的表結構。但是使用flask-migrate則免去這些繁瑣的步驟。

第一次初始化資料庫分為建立模型 -> 建立遷移檔案 -> 建立表三個步驟,分別對應initmigrateupgrade三個命令。之後表的增刪改則只需要後面兩個步驟。三個步驟執行的詳細內容如下,和git操作很相似:

sudo pip install flask-migrate
沒有安裝flask或者flask的flask-sqlalchemy擴充套件,使用以下指令安裝:

sudo pip install flask

sudo pip install flask-sqlalchemy

引用官方的示例**:

# 注意:如果資料模型和操作函式不在同乙個檔案下,需要引用資料模型,否則不會建立

# 例如你的使用者模型在 models/user.py 中,需要在呼叫前增加下述類似**

from flask import flask

from flask_sqlalchemy import sqlalchemy

from flask_migrate import migrate

# 資料庫連線配置

# 'mysql+pymysql://root:《你的密碼》@《主機位址》/《資料庫名》?charset=utf8'

# 上述為博主使用的配置,使用的是mysql資料庫,使用前需要安裝pymysql,否則會報錯,安裝指令如下:

# sudo pip install pymysql

'sqlalchemy_database_uri']=

# 初始化資料庫

# 初始化flask-migrate擴充套件

# 示例資料庫模型

class

user

(db.model):id

= db.column(db.integer, primary_key=

true

) name = db.column(db.string(

128)

)

使用下述命令建立模型:

flask db init
接著是建立遷移檔案:

flask db migrate
最後是更新資料庫:

flask db upgrade
flask db --help
安裝flask-script

sudo pip install flask-script
from flask import flask

from flask_sqlalchemy import sqlalchemy

from flask_script import manager

from flask_migrate import migrate, migratecommand

# 注意替換成自己的資料庫連線方式

'sqlalchemy_database_uri']=

manager.add_command(

'db'

, migratecommand)

class

user

(db.model):id

= db.column(db.integer, primary_key=

true

) name = db.column(db.string(

128)

)if __name__ ==

'__main__'

: manager.run(

)

然後幾個操作步驟為:

python manage.py db init

python manage.py db migrate

python manage.py db upgrade

python manage.py db --help

flask-migrate支援多資料庫,可以和flask-sqlalchemy的繫結功能結合,從而可以跟蹤與應用程式關聯的多個資料庫的遷移。

建立支援多資料庫的儲存倉庫,需要在init後增加--multidb引數,示例命令如下:

flask db init --multidb
【參考鏈結】

flask擴充套件 flask script

flask scropt外掛程式 為在flask裡編寫額外的指令碼提供了支援。這包括執行乙個開發伺服器,乙個定製的python命令列,用於執行初始化資料庫 定時任務和其他屬於web應用之外的命令列任務的指令碼。1.安裝 pip install flask script2.建立並執行命令列 第一步需要...

Flask的請求擴充套件

from flask import flask,requestbefore request 用法def func print request 可以在請求來前對於request進行處理 如有有返回值且有after request相關函式他的返回值會接著執行after request相關函式 如果有多個...

flask之請求擴充套件

可以多個請求之前的函式 執行順序是誰在前面誰先執行 如果前面的before request有返回值,後面的都不會執行 基於它做使用者登入認證 def process request args,kwargs if request.path login return none user session....