flask script擴充套件提供向flask插入外部指令碼的功能,包括執行一個開發用的伺服器,一個定製的python shell,設定資料庫的指令碼,cronjobs,及其他執行在web應用之外的命令列任務;使得指令碼和系統分開;
flask script和flask本身的工作方式類似,只需定義和新增從命令列中被manager例項呼叫的命令;
官方文件:
建立並執行命令
首先,建立一個python模板執行命令指令碼,可起名為manager.py;
在該檔案中,必須有一個manager例項,manager類追蹤所有在命令列中呼叫的命令和處理過程的呼叫運**況;
manager只有一個引數——flask例項,也可以是一個函式或其他的返回flask例項;
呼叫manager.run()啟動manager例項接收命令列中的命令;
#-*-coding:utf8-*-
from flask_script import manager
from debug import app
manager = manager(app)
if __name__ == '_程式設計客棧_main__':
manager.run()
其次,建立並加入命令;
有三種方法建立命令,即建立command子類、使用@command修飾符、使用@option修飾符;
第一種——建立command子類
command子類必須定義一個www.cppcns.comrun方法;
舉例:建立hello命令,並將hello命令加入manager例項;
from flask_script import manager ,server
from flask_script import command
from debug import app
manager = manager(app)
class hello(command):
'hello world'
def run(self):
print 'helloaqwwnsdv world'
#自定義命令一:
manager.add_command('hello', hello())
# 自定義命令二:
manager.add_command("runserver", server()) #命令是runserver
if __name__ == '__main__':
manager.run()
執行如下命令:
python manager.py hello
> hello world
python manager.py runserver
> hello world
第二種——使用command例項的@command修飾符
#-*-coding:utf8-*-
from flask_script import manager
from debug import app
manager = manager(app)
@manager.command
def hello():
'hello world'
print 'hello world'
if __name__ == '__main__':
manager.run()
該方法建立命令的執行方式和command類建立的執行方式相同;
python manager.py hello
> hello world
第三種——使用command例項的@option修飾符
複雜情況下,建議使用@option;
可以有多個@option選程式設計客棧項引數;
from flask_script import manager
from debug import app
manager = manager(app)
@manager.option('-n', '--name', dest='name', help='your name', default='world') #命令既可以用-n,也可以用--name,dest="name"使用者輸入的命令的名字作為引數傳給了函式中的name
@manager.option('-u', '--url', dest='url', default='www.csdn.com') #命令既可以用-u,也可以用--url,dest="url"使用者輸入的命令的url作為引數傳給了函式中的url
def hello(name, url):
'hello world or hello '
print 'hello', name
print url
if __name__ == '__main__':
manager.run()
執行方式如下:
python manager.py hello
>hello world
>www.csdn.com
python manager.py hello -n sissiy -u www.sissiy.com
> hello sissiy
>www.sissiy.com
python manager.py hello -name sissiy -url www.sissiy.com
> hello sissiy
>www.si程式設計客棧ssiy.com
本文標題: flask之flask-script模組使用
本文地址:
Flask之flask script 自定義命令
flask scropt外掛為在flask裡編寫額外的指令碼提供了支援。這包括執行一個開發伺服器,一個定製的python命令列,用於執行初始化資料庫 定時任務和其他屬於web應用之外的命令列任務的指令碼。pip install flask script git clone https github....
flask原始碼之flask入口 一
flask是一個基於python開發並且依賴jinja2模板和werkzeug wsgi服務的一個微型框架,對於werkzeug本質是socket服務端,其用於接收http請求並對請求進行預處理,然後觸發flask框架,開發人員基於flask框架提供的功能對請求進行相應的處理,並返回給使用者,如果要...
flask外掛系列之flask cors跨域請求
前後端分離在開發除錯階段本地的flask測試伺服器需要允許跨域訪問,簡單解決辦法有二 pip install flask corsfrom flask cors import cors if name main def af request resp 請求鉤子,在所有的請求發生後執行,加入heade...