Flask系列(九)flask script元件

2022-05-15 16:29:19 字數 2945 閱讀 1075

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

if__name__ == '

__main__

':

manager.run()

其次,建立並加入命令;

有三種方法建立命令,即建立command子類、使用@command修飾符、使用@option修飾符;

第一種——建立command子類

command子類必須定義乙個run方法;

舉例:建立hello命令,並將hello命令加入manager例項;

from flask_script import

manager ,server

from flask_script import

command

from debug import

class

hello(command):

'hello world

'def

run(self):

print

'hello 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

@manager.command

defhello():

'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

@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

defhello(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.sissiy.com

Flask外掛程式系列 Flask Mail

簡介 給使用者傳送郵件是 web 應用中最常見的任務之一,比如使用者註冊,找回密碼等。python 內建了乙個 smtplib 的模組,可以用來傳送郵件,這裡我們使用 flask mail,是因為它可以和 flask 整合,讓我們更方便地實現此功能。安裝 使用 pip 安裝 pip install ...

Flask學習系列(一)

安裝python,安裝virtualenv pip install virtualenv 建立虛擬py環境 virtualenv vpython 啟用虛擬py環境 venv scripts activate.bat 安裝flask pip install flask 應用程式是存在於 包 中的。在p...

Flask框架之九SQLAlchemy orm

條件 equals 相等 query.filter user.title ed not equals 不相等 query.filter user.title ed like 模糊查詢 query.filter user.title.like ed in 在 裡面 query.filter user....