flask擴充套件 flask script

2022-04-18 20:06:19 字數 1885 閱讀 1334

flask-scropt外掛程式:為在flask裡編寫額外的指令碼提供了支援。這包括執行乙個開發伺服器,乙個定製的python命令列,用於執行初始化資料庫、定時任務和其他屬於web應用之外的命令列任務的指令碼。

1.安裝

$ pip install flask-script
2.建立並執行命令列

第一步需要建立乙個可以執行你指令碼命令的python模組。你可以隨意命名它。我這裡就以manage.py為例。

在manage.py檔案中,需要先建立乙個manager例項。manager類會跟蹤所有的命令和命令列呼叫的引數:

from flask_script import manager

if __name__ == "__main__":

manager.run()

建立自定義命令的三種方式:

(1) 定義command類的子類

為了簡單,我們就建立乙個hello命令來輸出「hello world」:

from flask_script import command

class hello(command):

"prints hello world"

def run(self):

print "hello world"

接下來需要把命令新增到mannager例項:

manager.add_command('hello', hello())

from flask_script import

manager,command

from flask import

flask

)class

hello(command):

"prints hello world

"def

run(self):

print("

hello world")

manager.add_command(

'hello

', hello())

if__name__ == "

__main__":

manager.run()

完整**如下

在命令列執行如下命令:

(1)python manage.py hello

hello world

(2)python manage.py

usage: manage.py [-?] ...

positional arguments:

hello prints hello world

optional arguments:

-?, --help show this help message and

exit

也可以通過把包含command例項的字典作為manager.run()的引數:

manager.run()

(2)使用@command裝飾器

對於簡單的命令,我們可以使用屬於manager例項的@command裝飾器

@manager.command

def hello():

"just say hello"

print("hello")

其使用方法和前面一樣。

(3)使用@option裝飾器

如何需要通過命令列進行比較複雜的控制,可以使用manager例項的@option裝飾器。

@manager.option('-n', '--name', help='your name')

def hello(name):

print("hello", name)

Flask擴充套件 Flask Migrate用法

引用官方文件的話,flask migrate是使用alembic遷移flask應用程式的sqlalchemy資料庫的擴充套件,可以通過flask命令列或者flask script擴充套件對資料庫進行操作。該擴充套件主要用於遷移資料庫。傳統操作flask資料庫一般使用sqlalchemy,表的初始化使...

Flask的請求擴充套件

from flask import flask,requestbefore request 用法def func print request 可以在請求來前對於request進行處理 如有有返回值且有after request相關函式他的返回值會接著執行after request相關函式 如果有多個...

flask之請求擴充套件

可以多個請求之前的函式 執行順序是誰在前面誰先執行 如果前面的before request有返回值,後面的都不會執行 基於它做使用者登入認證 def process request args,kwargs if request.path login return none user session....