Flask Migrate模組使用

2021-09-10 03:45:42 字數 2783 閱讀 5652

flask-migrate可以十分方便的進行資料庫的遷移與對映,將我們修改過的orm模型對映到資料庫中。另外flask-migrate是對alembic的乙個封裝,其實它的底層是交由alembic來處理的。使用起來十分方便。

在flask專案中使用flask-migrate,我採用下面的結構。

專案**的入口,完成主要的配置和開始執行。

from flask import flask

from ext import db

import config

#目的:練習flask-migrate模組的使用

#安裝依賴: pip install flask-migrate

#其他依賴:

#pip install pymysql

#pip install sqlalchemy

#pip install flask-sqlalchemy

#pip install flask-script

#遷移命令

# 1.python manage.py db init

# 2.python manage.py db migrate

# 3.python manage.py db upgrade

if __name__ == '__main__':

2.ext.py

#ext.py

from flask_sqlalchemy import sqlalchemy

db = sqlalchemy() #建立乙個資料庫引擎

3.config.py用來存放一些全域性的配置資訊,一般是非常非常重要的配置資訊。

#資料庫配置資訊

hostname = '127.0.0.1'

port = '3306'

database = 'mydb'

username = 'root'

password = 'wangjian'

db_uri = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(username,password,hostname,port,database)

sqlalchemy_database_uri = db_uri

sqlalchemy_track_modifications = true

4.models.py用來構造orm模型,這個是對資料庫**的對映。後面遷移過程會使用到。

# models.py

from ext import db

#建立orm模型類

class user(db.model):

id = db.column(db.integer, primary_key=true)

username = db.column(db.string(50))

addresses = db.relationship('address', backref='user')

def __init__(self, username):

self.username = username

class address(db.model):

id = db.column(db.integer, primary_key=true)

email_address = db.column(db.string(50))

user_id = db.column(db.integer, db.foreignkey('user.id'))

def __init__(self, email_address):

self.email_address = email_address

5.manage.py本文的重點,將flask-migrate遷移的操作以指令碼命令的形式新增到`db`這個子集

# manage.py

#將遷移相關的命令集新增到指令碼命令中

from flask_migrate import migrate, migratecommand

from ext import db

from flask_script import manager

import models #匯入你想要遷移的資料表的orm類

manager.add_command('db',migratecommand) #新增遷移命令集 到指令碼命令

#如果是以此指令碼作為主指令碼程式,就執行

if __name__ == '__main__':

manager.run()

在專案目錄下,進入控制台輸入命令

1.初始化遷移檔案

python manage.py db init
2.將模型新增到遷移檔案

python manage.py db migrate
3.遷移檔案中的模型對映到資料庫中

Flask擴充套件 Flask Migrate用法

引用官方文件的話,flask migrate是使用alembic遷移flask應用程式的sqlalchemy資料庫的擴充套件,可以通過flask命令列或者flask script擴充套件對資料庫進行操作。該擴充套件主要用於遷移資料庫。傳統操作flask資料庫一般使用sqlalchemy,表的初始化使...

Python webbrowser模組的使用

webbrowser模組提供了乙個高階介面來顯示基於web的文件,大部分情況下只需要簡單的呼叫open 方法。webbrowser定義了如下的異常 exception webbrowser.error,當瀏覽器控制項發生錯誤是會丟擲這個異常 webbrowser有以下方法 webbrowser.op...

Flask Migrate資料庫遷移

在命令列中實現資料遷移,工程放在f erp1 server中 開始準備工作 使用命令安裝flask migrate包 pip install flask migrate 第一步 進入工程目錄 c users administrator f f cd f erp1 server f erp1 serv...