Flask數(shù)據(jù)庫遷移簡單介紹
前言
用過Django的小伙伴都知道,Django的ORM是自帶的,比較特殊,而且集成了很多功能,比如數(shù)據(jù)庫遷移…
何為ORM,個人之見解,簡化sql語句的書寫,將關系型數(shù)據(jù)庫的一張張表轉化為了python的類,最大的好處是簡化了學習成本,不會sql語句的程序員也能平滑的使用數(shù)據(jù)庫,并且天生防sql注入。flask可以使用SQLAlchemy,包名為flask-sqlalchemy.至于具體用法翻譯的官方文檔講的也足夠清楚。大家直接谷歌跟著文檔就能搞定,本篇主要講如何進行數(shù)據(jù)庫遷移。
flask的小工具
大家從Django轉至Flask最明顯的一個差異就是,flask直接運行就可以啟動服務,Django是使用了runserver來進行運行。至于好壞大家自行斟酌。這里提一個插件。flask-script。pip安裝即可。
from flask_script import Manager ...... manager = Manager(app) ...... #app.run() #注釋這句 manager.run()
這樣,啟動的方式變?yōu)?python main.py runserver
這似乎有點畫蛇添足,實則不然,這和我們下面要講的數(shù)據(jù)庫遷移有很大的聯(lián)系。
數(shù)據(jù)庫遷移
需要用的的插件 flask-migrate
安裝之
main.py
from flask import Flask from flask_script import Manager from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate,MigrateCommand app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////opt/db.sqlite' #使用sqlite3數(shù)據(jù)庫 db = SQLAlchemy(app) #ORM migrate = Migrate(app,db) manager = Manager(app) manager.add_comman('db',MigrateCommand) #添加db 命令(runserver的用法) #一個用戶表 class User(db.Model): ... ... 省略 if __name__ == '__main__': manager.run()
這樣,準備工作已經就緒。
運行python main.py db init創(chuàng)建數(shù)據(jù)表。并且會在你項目下生成migrations/目錄,保存你數(shù)據(jù)庫每次變更的內容。
修改User類。
python main.py db migrate 提交修改
python main.py db upgrade 執(zhí)行修改
再看User表,已經改變。
python main.py db downgrade 回退修改
有一點注意的:SQLite3不能刪除有值的列…所以,大家就不要刪除列了…
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python機器學習NLP自然語言處理基本操作之Seq2seq的用法
Seq2Seq模型是輸出的長度不確定時采用的模型,這種情況一般是在機器翻譯的任務中出現(xiàn),將一句中文翻譯成英文,那么這句英文的長度有可能會比中文短,也有可能會比中文長,所以輸出的長度就不確定了2021-10-10Python使用PyAudio制作錄音工具的實現(xiàn)代碼
這篇文章主要介紹了Python使用PyAudio制作錄音工具,音頻錄制與視頻錄制相似,也是以數(shù)據(jù)幀的方式錄制保存,這次使用強大的第三方包PyAudio和內置的wave模塊編寫,需要的朋友可以參考下2022-04-04運行tensorflow python程序,限制對GPU和CPU的占用操作
今天小編就為大家分享一篇運行tensorflow python程序,限制對GPU和CPU的占用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python正則過濾字母、中文、數(shù)字及特殊字符方法詳解
這篇文章主要介紹了python正則過濾字母、數(shù)字及特殊字符方法詳解,需要的朋友可以參考下2020-02-02Pycharm沒有報錯提示(誤觸ignore)的完美解決方案
這篇文章主要介紹了Pycharm沒有報錯提示(誤觸ignore)的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12