Flask-Script扩展提供了写Flask外部脚本的支持。这包括运行开发服务器,自定义Python Shell,设置数据库的脚本,cronjobs以及Web应用程序本身以外的其他命令行任务
安装
pip install flask-script
创建和运行命令
首先,我们创建一个Python模块来运行你的脚本命令,如下manage.py
:
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
if __name__ == "__main__":
manager.run()
下一步就是创建和添加命令,创建命令有三种方法:
- 对Command类进行子类化
- 使用@command装饰器
- 使用@option装饰器
对Command类进行子类化
下面,使用Command类子类化举一个简单的栗子,如下:
from flask_script import Command
class Hello(Command):
def run(self):
print 'hello world'
接下来,将命令添加到我们的Manager
实例当中,如下:
manager.add_command('hello', Hello())
或者,你还可以将Commanddict中的实例传递给manager.run():
manager.run({"hello": Hello()})
现在,我们在命令行中输入以下命令:
# hello对应add_command方法中定义的字符串hello
root@ubuntu:~# python manage.py hello
hello world
我们还可以使用空命令来获取可用命令及其描述的列表:
root@ubuntu:~# python manage.py
usage: manage.py [-?] {hello,shell,runserver} ...
positional arguments:
{hello,shell,runserver}
hello
shell Runs a Python shell inside Flask application context.
runserver Runs the Flask development server i.e. app.run()
...
我们还可以获取特定的帮助文本:
# hello对应add_command方法中定义的字符串hello
python manage.py hello -?
使用@command装饰器
下面使用@command
装饰器来举个简单的栗子,如下:
@manager.command
def hello():
print