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...