Project name :Flask_Plan
templates:templates
static:static
首先說,我們flask比django方便的地方是所有的模塊都可以自己選,你不喜歡sqlalchemy這個orm,你可以換一個,別問我,我也不會,學的就是sqlalchemy。
django提供了一個數據庫設升級工具migrate,我們也需要啊,否則后期增加功能,數據庫就頭痛死。
好吧,我們也給flask加上這樣的功能。
恐怕還是老實用sqlalchemy吧,flask_sqlalchemy少了一些數據庫的高級功能,比如說or_
sqlalchemy和flask_sqlalchemy能否混用,還不清楚。先用sqlalchemy吧。原版的。
我不准備再寫sqlalchemy的文章了。
直接寫flask_sqlalchemy吧,同時配合flask_migrate,配合flask_script
安裝也很簡單。
創建Flask_Plan/manage.py
from flask_script import Manager from Flask_Plan import app manager = Manager(app) @manager.command def runserver(): print('hello') if __name__ == '__main__': manager.run()
直接運行這個文件
usage: managy.py [-?] {runserver,shell} ...
提示到了你需要使用 managy.py runserver 來運行。
那么我們就在該目錄下 運行
python managy.py runserver
會輸出我們的hello
我是用的虛擬環境的python
命令如下圖
但是我們用的是pycharm,還老進這命令行干嗎?
參考以下配置:
File--Settings--tools--External Tools
用右邊的加號自己創建一個新的。
Name是你會在菜單里看到的。
Program:是python的位置,這個是我的虛擬環境中python的位置。
Parameters:就是可選的命令參數了。
高級用法:如果命令多了,怎么寫?都寫這一個文件,找起來累死了。
把一類命令放進一個script文件
創建Flask_Plan/db_script.py
from flask_script import Manager DBmanager = Manager() @DBmanager.command def init(): print('數據庫初始化') @DBmanager.command def migrate(): print('數據庫比較') @DBmanager.command def update(): print('數據庫升級')
編輯Flask_Plan/manage.py
from flask_script import Manager #引入script的manager from Flask_Plan import app #引入啟動文件的app(實例化的FLASK) from db_script import DBmanager #引入DB類的命令文件 manager = Manager(app) #實例化manager @manager.command #用裝飾器表明下面的函數是個manager命令 def runserver(): #函數名稱就是manager命令的參數 print('hello') manager.add_command('db',DBmanager) #把引入的DB命令,加入manager中 if __name__ == '__main__': manager.run()
引入了DB類的命令文件
把命令都加入了manager
直接運行一下managy.py
提示信息:
usage: managy.py [-?] {runserver,db,shell} ... positional arguments: {runserver,-db,shell} runserver -db
看到提示-db了么?這就是我們把命令加入manager時候用的前綴,開始有點像dos命令了。
運行命令是這樣的:
貌似我們已經實現了django中
makemigrations
migrate
兩個命令。
配置進pycharm
File--Settings--tools--External Tools
后面講migrate的時候會用到。