flask+script命令行交互工具


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的時候會用到。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM