Flask之flask-script模組 建立命令
阿新 • • 發佈:2018-12-10
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