Flask之flask-script模块使⽤
Flask Script扩展提供向Flask插⼊外部脚本的功能,包括运⾏⼀个开发⽤的服务器,⼀个定制的Python shell,设置数据库的脚本,cronjobs,及其他运⾏在web应⽤之外的命令⾏任务;使得脚本和系统分开;
Flask Script和Flask本⾝的⼯作⽅式类似,只需定义和添加从命令⾏中被Manager实例调⽤的命令;
创建并运⾏命令
⾸先,创建⼀个Python模板运⾏命令脚本,可起名为manager.py;
在该⽂件中,必须有⼀个Manager实例,Manager类追踪所有在命令⾏中调⽤的命令和处理过程的调⽤运⾏情况;
Manager只有⼀个参数——Flask实例,也可以是⼀个函数或其他的返回Flask实例;
调⽤manager.run()启动Manager实例接收命令⾏中的命令;
#-*-coding:utf8-*-
from flask_script import Manager
from debug import app
manager = Manager(app)
if __name__ == '__main__':
manager.run()
其次,创建并加⼊命令;
有三种⽅法创建命令,即创建Command⼦类、使⽤@command修饰符、使⽤@option修饰符;
第⼀种——创建Command⼦类
Command⼦类必须定义⼀个run⽅法;
举例:创建Hello命令,并将Hello命令加⼊Manager实例;
from flask_script import Manager ,Server
django项目实例
from flask_script import Command
from debug import app
manager = Manager(app)
class Hello(Command):
'hello world'
def run(self):
print 'hello world'
#⾃定义命令⼀:
manager.add_command('hello', Hello())
# ⾃定义命令⼆:
manager.add_command("runserver", Server()) #命令是runserver
if __name__ == '__main__':
manager.run()
执⾏如下命令:
python manager.py hello
> hello world
python manager.py runserver
> hello world
第⼆种——使⽤Command实例的@command修饰符
#-*-coding:utf8-*-
from flask_script import Manager
from debug import app
manager = Manager(app)
@managermand
def hello():
'hello world'
print 'hello world'
if __name__ == '__main__':
manager.run()
该⽅法创建命令的运⾏⽅式和Command类创建的运⾏⽅式相同;
python manager.py hello
> hello world
第三种——使⽤Command实例的@option修饰符
复杂情况下,建议使⽤@option;
可以有多个@option选项参数;
from flask_script import Manager
from debug import app
manager = Manager(app)
@manager.option('-n', '--name', dest='name', help='Your name', default='world') #命令既可以⽤-n,也可以⽤--name,dest="name"⽤户输⼊的命令的名字作为参数传给了函数中的name @manager.option('-u', '--url', dest='url', default='www.csdn') #命令既可以⽤-u,也可以⽤--url,dest="url"⽤户输⼊的命令的url作为参数传给了函数中的url
def hello(name, url):
'hello world or hello <setting name>'
print 'hello', name
print url
if __name__ == '__main__':
manager.run()
运⾏⽅式如下:
python manager.py hello
>hello world
>www.csdn
python manager.py hello -n sissiy -u www.sissiy
> hello sissiy
>www.sissiy
python manager.py hello -name sissiy -url www.sissiy
> hello sissiy
>www.sissiy
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。