Flask資料庫遷移簡單介紹,flask遷移簡單介紹

來源:互聯網
上載者:User

Flask資料庫遷移簡單介紹,flask遷移簡單介紹

前言

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

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不能刪除有值的列…所以,大家就不要刪除列了…

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.