欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用Flask Migrate模塊遷移數(shù)據(jù)庫

 更新時間:2022年07月27日 14:52:46   作者:自由小冰兒  
Flask-Migrate是一個為Flask應(yīng)用處理SQLAlchemy數(shù)據(jù)庫遷移的擴(kuò)展,使得可以通過Flask的命令行接口或者Flask-Scripts對數(shù)據(jù)庫進(jìn)行操作

前言

本篇文章,闡述一下Flask中數(shù)據(jù)庫的遷移

為什么要說數(shù)據(jù)庫遷移呢?

比如我們以前有一個數(shù)據(jù)庫,里面的信息有 id, name現(xiàn)在我想再加一個gender屬性,應(yīng)該怎么辦呢?不可能直接把數(shù)據(jù)庫刪除掉吧。然后重新創(chuàng)建一個,因此本文介紹一種,通過數(shù)據(jù)庫遷移的方法,可以保留原始的數(shù)據(jù),并完成添加新的一列的方法。

安裝

直接使用pip install flask-migrate即可

初始化

項目結(jié)構(gòu)

# exts.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

老樣子,我們還是在exts.py中,初始我們的數(shù)據(jù)庫,這里時放Flask擴(kuò)展的地方。

# models.py
from exts import db
class User(db.Model):
	id = db.Column(db.Integer,primary_key=True)
	username = db.Column(db.String(80),unique=True)
	def __repr__(self):
		return '<User %s>' % self.username

models.py是放模型的地方。

# app.py
from flask import Flask
from exts import db
from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///foo.db"
# !?。〗壎╝pp和數(shù)據(jù)庫
db.init_app(app)
migrate = Migrate(app,db)
if __name__ == '__main__':
    app.run()

主程序,我們在?。。?/code>進(jìn)行初始化數(shù)據(jù)庫遷移的migrate 對象。初始化之后我們可以執(zhí)行下面的三大命令去創(chuàng)建我們的數(shù)據(jù)庫。就不需要db.create_all()命令啦。

三大命令

# (1)初始化
flask db init
# 把當(dāng)前的模型添加到遷移文件
flask db migrate
# 將映射文件真正的映射到數(shù)據(jù)庫中
flask db upgrade

(1)新建一個名字為migrations的文件夾,并且記錄一個數(shù)據(jù)庫版本號

其他問題:

如果報錯[flask_migrate] Error: Can‘t locate revision identified by '409392ed6301'

答:db revision --rev-id 409392ed6301 409392ed6301是問題的版本號

Error: While importing ‘app’, an ImportError was raised.

答:請先去運(yùn)行一下app.py,確保app.py可以運(yùn)行

Error: Could not locate a Flask application. You did not provide the “FLASK_APP” environment variable, and a “wsgi.py” or “app.py” module was not found in the current directory. 答:請確保執(zhí)行命令時的文件夾中有app.py文件

到此這篇關(guān)于Python使用Flask Migrate模塊遷移數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Python Flask Migrate內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python讀取及保存mat文件的注意事項說明

    Python讀取及保存mat文件的注意事項說明

    這篇文章主要介紹了Python讀取及保存mat文件的注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Django1.7+python 2.78+pycharm配置mysql數(shù)據(jù)庫教程

    Django1.7+python 2.78+pycharm配置mysql數(shù)據(jù)庫教程

    原本感覺在Django1.7+python 2.78+pycharm環(huán)境下配置mysql數(shù)據(jù)庫是件很容易的事情,結(jié)果具體操作的時候才發(fā)現(xiàn),問題還是挺多的,這里記錄一下最終的配置結(jié)果,給需要的小伙伴參考下吧
    2014-11-11
  • python多個字符串條件分割split方式

    python多個字符串條件分割split方式

    這篇文章主要介紹了python多個字符串條件分割split方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python中的閉包函數(shù)

    python中的閉包函數(shù)

    這篇文章主要介紹了python中的閉包函數(shù),非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Python簡單進(jìn)程鎖代碼實(shí)例

    Python簡單進(jìn)程鎖代碼實(shí)例

    這篇文章主要介紹了Python簡單進(jìn)程鎖代碼實(shí)例,本文講解了線程和進(jìn)程的相關(guān)知識,然后給出了Python的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • 用python做個代碼版的小仙女蹦迪視頻

    用python做個代碼版的小仙女蹦迪視頻

    這篇文章主要介紹了怎么樣用python做個代碼版的小仙女蹦迪視頻,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • python迭代器實(shí)例簡析

    python迭代器實(shí)例簡析

    這篇文章主要介紹了python迭代器,以一個簡單實(shí)例的形式分析了Python中迭代器的用法及注意事項,需要的朋友可以參考下
    2014-09-09
  • Anaconda安裝pytorch和paddle的方法步驟

    Anaconda安裝pytorch和paddle的方法步驟

    本文主要介紹了Anaconda安裝pytorch和paddle的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 基于Python編寫一個寶石消消樂小游戲

    基于Python編寫一個寶石消消樂小游戲

    快過年回家啦用,本文將為大家介紹一個用python編寫的寶石消消樂游戲用來哄小朋友,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-01-01
  • 讀寫json中文ASCII亂碼問題的解決方法

    讀寫json中文ASCII亂碼問題的解決方法

    下面小編就為大家?guī)硪黄x寫json中文ASCII亂碼問題的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論