http://www.forfreezone.com

flask-script组件

Flask Script扩充提供向Flask插入外部脚本的效劳,包括运营三个开支用的服务器,二个定制的Python shell,设置数据库的脚本,cronjobs,及别的运营在web应用之外的命令行职务;使得脚本和种类抽离;

Flask Script和Flask自身的专门的学业方式接近,只需定义和丰裕从命令行中被Manager实例调用的通令;

法定文书档案:

1 创制并运维命令

首先,成立贰个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
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)  

@manager.command  
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.com')  #命令既可以用-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
www.2061.com,>hello world
>www.csdn.com

python manager.py hello -n sissiy -u www.sissiy.com
> hello sissiy
>www.sissiy.com

python manager.py hello -name sissiy -url www.sissiy.com
> hello sissiy
>www.sissiy.com

 

郑重声明:本文版权归澳门新葡8455最新网站所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。