文章目录
一、Flask-Script简介
1、什么是Flask-Script
Flask-Script用来生成shell命令;为在Flask里编写额外的脚本提供了支持。
- 这包括运行一个开发服务器,一个定制的Python命令行,用于执行初始化数据库、定时任务和其他属于web应用之外的命令行任务的脚本.
- Flask-Script和Flask本身的工作方式类似。只需要定义和添加能从命令行中被Manager实例调用的命令即可。
2、为什么使用Flask-Script
Flask的开发Web服务器支持很多启动设置选项,但只能在脚本中作为参数传给app.run()函数。这种方式在后期维护和修改代码时很不方便,传递设置选项的理想方式是使用命令行参数。
- Flask-Scrip就是这么一个Flask扩展,为Flask程序添加一个命令行解析器。
- Flask-Script自带了一组常用选项,而且还支持自定义命令。
二、如何配置Flask-Script
1、安装Flask-Script
pip install -i https://pypi.douban.com/simple flask-script
2、配置Fsalk-Script
创建文件manage.py文件作为项目的入口文件。
- 无需把所有的命令都放在同一个文件里,例如,在一个大型项目中,可以把相关联的命令放在不同的文件里。
配置manage.py文件
from flask_script import Manager
#Manager类将追踪所有的在命令行中调用的命令和处理过程的调用运行情况;
#configure your app
from run import app
manager=Manager(app)
if __name__ == '__main__':
manager.run()
在终端中实现功能:
python manage.py
python manage.py runserver
python manage.py runserver -h '0.0.0.0' -p 9999
python manage.py shell
三、添加自定义命令的3种方式
网站参考:添加自定义命令详细教程
- 使用command装饰器
- 定义Command的子类
- 使用Option装饰器
1、方法一
@manager.command
def hello():
"""打招呼"""
return 'hello'
实现功能(终端中进行):
python manage.py
python manage.py hello
2、方法二
不太简洁,一般不用
from flask_script import Command
class Hello(Command):
'prints hello world'
def run(self):
return 'hello world'
manager.add_command('hello',Hello())
3、方法三
强化了方法一,使得可以添加参数
@manager.option('-n','--name',help='Your name')
def hello(name):
return 'hello',name