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

Flask數(shù)據(jù)庫遷移簡單介紹

 更新時間:2017年10月24日 09:35:49   作者:嵐漾憶雨  
這篇文章主要為大家詳細介紹了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三元運算與lambda表達式實例解析

    Python三元運算與lambda表達式實例解析

    這篇文章主要介紹了Python三元運算與lambda表達式實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Python機器學習NLP自然語言處理基本操作之Seq2seq的用法

    Python機器學習NLP自然語言處理基本操作之Seq2seq的用法

    Seq2Seq模型是輸出的長度不確定時采用的模型,這種情況一般是在機器翻譯的任務中出現(xiàn),將一句中文翻譯成英文,那么這句英文的長度有可能會比中文短,也有可能會比中文長,所以輸出的長度就不確定了
    2021-10-10
  • Python列表生成式與生成器操作示例

    Python列表生成式與生成器操作示例

    這篇文章主要介紹了Python列表生成式與生成器操作,結合實例形式分析了Python列表生成式與生成器的功能、使用方法及相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python使用PyAudio制作錄音工具的實現(xiàn)代碼

    Python使用PyAudio制作錄音工具的實現(xiàn)代碼

    這篇文章主要介紹了Python使用PyAudio制作錄音工具,音頻錄制與視頻錄制相似,也是以數(shù)據(jù)幀的方式錄制保存,這次使用強大的第三方包PyAudio和內置的wave模塊編寫,需要的朋友可以參考下
    2022-04-04
  • 運行tensorflow python程序,限制對GPU和CPU的占用操作

    運行tensorflow python程序,限制對GPU和CPU的占用操作

    今天小編就為大家分享一篇運行tensorflow python程序,限制對GPU和CPU的占用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python中的三種注釋方法

    python中的三種注釋方法

    這篇文章主要介紹了python中的三種注釋方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • python正則過濾字母、中文、數(shù)字及特殊字符方法詳解

    python正則過濾字母、中文、數(shù)字及特殊字符方法詳解

    這篇文章主要介紹了python正則過濾字母、數(shù)字及特殊字符方法詳解,需要的朋友可以參考下
    2020-02-02
  • 淺析NumPy 切片和索引

    淺析NumPy 切片和索引

    這篇文章主要介紹了NumPy 切片和索引的相關資料,幫助大家更好的理解和學習NumPy的相關知識,感興趣的朋友可以了解下。
    2020-09-09
  • python使用mysql的兩種使用方式

    python使用mysql的兩種使用方式

    pymsql是Python中操作MySQL的模塊。這篇文章主要介紹了python使用mysql的兩種使用方式,需要的朋友可以參考下
    2018-03-03
  • Pycharm沒有報錯提示(誤觸ignore)的完美解決方案

    Pycharm沒有報錯提示(誤觸ignore)的完美解決方案

    這篇文章主要介紹了Pycharm沒有報錯提示(誤觸ignore)的解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論