亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Flask數(shù)據(jù)庫(kù)遷移簡(jiǎn)單介紹

 更新時(shí)間:2017年10月24日 09:35:49   作者:嵐漾憶雨  
這篇文章主要為大家詳細(xì)介紹了Flask數(shù)據(jù)庫(kù)遷移簡(jiǎn)單工作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

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

flask的小工具

大家從Django轉(zhuǎn)至Flask最明顯的一個(gè)差異就是,flask直接運(yùn)行就可以啟動(dòng)服務(wù),Django是使用了runserver來(lái)進(jìn)行運(yùn)行。至于好壞大家自行斟酌。這里提一個(gè)插件。flask-script。pip安裝即可。

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

這樣,啟動(dòng)的方式變?yōu)?python main.py runserver

這似乎有點(diǎn)畫(huà)蛇添足,實(shí)則不然,這和我們下面要講的數(shù)據(jù)庫(kù)遷移有很大的聯(lián)系。

數(shù)據(jù)庫(kù)遷移

需要用的的插件 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ù)庫(kù)
db = SQLAlchemy(app) #ORM

migrate = Migrate(app,db)
manager = Manager(app)
manager.add_comman('db',MigrateCommand) #添加db 命令(runserver的用法)

#一個(gè)用戶(hù)表
class User(db.Model):
...
...
省略

if __name__ == '__main__':
 manager.run()

這樣,準(zhǔn)備工作已經(jīng)就緒。
運(yùn)行python main.py db init創(chuàng)建數(shù)據(jù)表。并且會(huì)在你項(xiàng)目下生成migrations/目錄,保存你數(shù)據(jù)庫(kù)每次變更的內(nèi)容。

修改User類(lèi)。

python main.py db migrate 提交修改
python main.py db upgrade 執(zhí)行修改

再看User表,已經(jīng)改變。

python main.py db downgrade 回退修改

有一點(diǎn)注意的:SQLite3不能刪除有值的列…所以,大家就不要?jiǎng)h除列了…

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論