Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;
Flask Script和Flask本身的工作方式类似,只需定义和添加从命令行中被Manager实例调用的命令;
flask-script的作用是可以通过命令行的形式来操作Flask
pip install Flask-Script
将Flask_Script加入Flask项目中
# 编写文件 manager.py
import MyApp
from flask_script import Manager
app = MyApp.create_app()
# 让app支持 Manager
manager = Manager(app)
if __name__ == '__main__':
# 替换原有的app.run()
manager.run()
执行命令
1. 使用命令启动Flask项目
python manager.py runserver
2. 启动项目并更改配置参数 (监听IP地址, 监听端口)
python manager.py runserver -h 0.0.0.0 -p 9527
自制定脚本命令
@manager.command
1. 编写文件
import MyApp
from flask_script import Manager
app = MyApp.create_app()
# 让app支持 Manager
manager = Manager(app)
@manager.command
def func(*arg):
print(arg)
if __name__ == '__main__':
# 替换原有的app.run()
manager.run()
2. 执行命令
python manager.py func jason
@manager.opation
1. 编写文件, 参数可以随意指定
import MyApp
from flask_script import Manager
app = MyApp.create_app()
# 让app支持 Manager
manager = Manager(app)
# 命令既可以用-n,也可以用--name,dest="name" 用户输入的命令的名字作为参数传给了函数中的name
@manager.option('-n', '--name', dest='name', help='Your name', default='world')
# 命令既可以用-u,也可以用--url,dest="url" 用户输入的命令的url作为参数传给了函数中的url
@manager.option('-u', '--url', dest='url', default='www.xxx.com')
@manager.command
def func(name, url):
print(name)
print(url)
if __name__ == '__main__':
# 替换原有的app.run()
manager.run()
2. 运行命令
python manager.py talk -n jason -u www.xxx.com
python manager.py talk --name jason --url www.xxx.com