国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Flask數據庫遷移簡單介紹

2020-01-04 16:39:00
字體:
來源:轉載
供稿:網友

前言

用過Django的小伙伴都知道,Django的ORM是自帶的,比較特殊,而且集成了很多功能,比如數據庫遷移…
何為ORM,個人之見解,簡化sql語句的書寫,將關系型數據庫的一張張表轉化為了python的類,最大的好處是簡化了學習成本,不會sql語句的程序員也能平滑的使用數據庫,并且天生防sql注入。flask可以使用SQLAlchemy,包名為flask-sqlalchemy.至于具體用法翻譯的官方文檔講的也足夠清楚。大家直接谷歌跟著文檔就能搞定,本篇主要講如何進行數據庫遷移。

flask的小工具

大家從Django轉至Flask最明顯的一個差異就是,flask直接運行就可以啟動服務,Django是使用了runserver來進行運行。至于好壞大家自行斟酌。這里提一個插件。flask-script。pip安裝即可。

from flask_script import Manager......manager = Manager(app)......#app.run() #注釋這句manager.run()

這樣,啟動的方式變為 python main.py runserver

這似乎有點畫蛇添足,實則不然,這和我們下面要講的數據庫遷移有很大的聯系。

數據庫遷移

需要用的的插件 flask-migrate
安裝之

main.py

from flask import Flaskfrom flask_script import Managerfrom flask_sqlalchemy import SQLAlchemyfrom flask_migrate import Migrate,MigrateCommandapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////opt/db.sqlite' #使用sqlite3數據庫db = SQLAlchemy(app) #ORMmigrate = 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創建數據表。并且會在你項目下生成migrations/目錄,保存你數據庫每次變更的內容。

修改User類。

python main.py db migrate 提交修改
python main.py db upgrade 執行修改

再看User表,已經改變。

python main.py db downgrade 回退修改

有一點注意的:SQLite3不能刪除有值的列…所以,大家就不要刪除列了…

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 进贤县| 平和县| 靖边县| 凤凰县| 日照市| 余干县| 开鲁县| 桦南县| 通许县| 蒲城县| 白银市| 仁化县| 新巴尔虎左旗| 遵化市| 清苑县| 道真| 新邵县| 呼图壁县| 罗甸县| 黑河市| 霞浦县| 毕节市| 五大连池市| 历史| 田东县| 乐都县| 神木县| 旬阳县| 海原县| 梁平县| 光山县| 鹤峰县| 石台县| 团风县| 乌拉特前旗| 栖霞市| 五指山市| 广汉市| 手游| 莫力| 丹东市|