1. 程式人生 > >Flask之flask-script模組 建立命令

Flask之flask-script模組 建立命令

Flask-script模組建立命令

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

(1) 使用Command子類建立

需要自定義一個類繼承Command類, 並且需要重寫run方法, 不能為其他名字, 如果沒有重寫此方法會報NotImplementedError錯誤, 以下是manager.py檔案

from flask import Flask
from flask_script import Manager
from flask_script import Command

app = Flask(__name__)

manager = Manager(app)

class
Hello(Command):
"this is hello command desc" def run(self): print("hello world") manager.add_command("hello", Hello()) # 引數一: 命令名, 引數二: 命令物件 if __name__ == "__main__": manager.run()

這裡寫圖片描述

執行如下命令:

$ python manager.py hello > hello world

(2) 使用@command

以下是manager_2.py

檔案

from flask import Flask
from flask_script import Manager
from flask_script import Command

app = Flask(__name__)

manager = Manager(app)

@manager.command
def hello():
    "this is hello command desc!"
    print("hello world")

if __name__ == "__main__":
    manager.run()

截圖同上 執行如下命令:

$ python manager.py hello > hello world

(3) 使用@option

以下是manager_3.py檔案

from flask import Flask
from flask_script import Manager
from flask_script import Command

app = Flask(__name__)

manager = Manager(app)

# 將-n與--name與dest="name", 三個引數意思是將後面的引數傳給hello方法的name, help是命令引數描述, default是預設值
@manager.option("-n", "--name", dest="name", help="your name", default="world")
def hello(name):
    print("hello world")
    print("傳過來的name:", name)


if __name__ == "__main__":
    manager.run()

執行如下命令:

$ python manager_3.py hello > hello world > 傳過來的name: world

$ python manager.py hello -n fanzone > hello world > 傳過來的name: fanzone

$ python manager.py hello –name fanzone > hello world > 傳過來的name: fanzone