概述
Flask-Script的作用是可以通过命令行的形式来操作Flask。例如通过命令跑一个开发版本的服务器、设置数据库,定时任务等。要使用Flask-Script,可以通过pip install flask-script安装最新版本
from flask_script import Manager
from flask_app import app
manager = Manager(app)
@manager.command
def hello():
print('hello')
if __name__ == '__main__':
manager.run()
command即是命令行,我们把脚本命令代码放在一个叫做manage.py文件中,不需要运行这个文件,直接在终端运行python manage.py hello命令,就可以看到输出hello了
定义命令的三种方法
- 使用@command装饰器
- 使用类继承自Command类
from flask_script import Command,Manager
from flask_app import app
manager = Manager(app)
class Hello(Command):
'''prints hello world'''
def run(self):
print("hello world")
manager.add_command('hello',Hello())
使用类的方式,有三点需要注意
- 必须继承自Command基类。
- 必须实现run方法。
- 必须通过add_command方法添加命令。
- 使用option装饰器:
如果想要在使用命令的时候还传递参数进去,那么使用@option装饰器更加的方便
@manager.option('-n','--name',dest='name')
def hello(name):
print('hello ',name)
这样,调用hello命令
python manage.py -n juran
python manage.py --name juran
添加参数到命令中
option装饰器:以上三种创建命令的方式都可以添加参数,@option装饰器,已经介绍过了
@manager.option('-n', '--name', dest='name', default='xima')
@manager.option('-u', '--url', dest='url', default=None)
def hello(name, url):
if url is None:
print("hello", name)
else:
print("hello", name, "from", url)
command装饰器:command装饰器也可以添加参数,但是不能那么的灵活
@manager.command
def hello(name="Fred")
print("hello", name)
类继承:类继承也可以添加参数
from flask_Flask import Comman,Manager,Option
class Hello(Command):
option_list = (
Option('--name','-n',dest='name'),
)
def run(self,name):
print(f"hello {name}")
如果要在指定参数的时候,动态的做一些事情,可以使用get_options方法
class Hello(Command):
def __init__(self,default_name='xima'):
self.default_name = default_name
def get_options(self):
return [
Option('-n','--name',dest='name',default=self.default_name),
]
def run(self,name):
print('hello',name)
最后
以上就是慈祥战斗机为你收集整理的Flask-Script的全部内容,希望文章能够帮你解决Flask-Script所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复