Flask之flask script模組使用

2023-03-19 01:05:38 字數 2770 閱讀 9879

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...