Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开;

Flask Script和Flask本身的工作方式类似,只需定义和添加从命令行中被Manager实例调用的命令;

官方文档:http://flask-script.readthedocs.io/en/latest/

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
>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

最新文章

  1. 使用jenkins配置.net mvc网站进行持续集成三
  2. springmvc 中controller与jsp传值
  3. ajax基础一
  4. Moon.Orm 5.0 (MQL版) 实战实例
  5. jsp include指令
  6. sql 如何过滤重复记录
  7. jQuery 、js 设置 显示隐藏
  8. Apache .htaccess语法之RewriteRule
  9. MySQL (五)--连接查询简介、 交叉连接、 内连接、外连接、自然连接、温馨小提示
  10. hadoop2.6.0实践:003 检查hadoop是否可用
  11. 【原创】大叔经验分享(25)hive通过外部表读写hbase数据
  12. oracle控制文件问题
  13. pyhon的yileld的一点笔记
  14. Docker 加速器设置
  15. php 常用函数总结
  16. .NET本质论 方法
  17. JavaScript之图片操作6
  18. Node.js实战(一)之概述
  19. 2015 -&amp;gt; 2016
  20. html5 的localstorage

热门文章

  1. Javascript特效代码大全(420个)(转)
  2. jquery ajax生成Select
  3. windows环境通过cmd命令到ftp上下载文件到linux服务器
  4. Web前端设计模式--制作漂亮的弹出层
  5. VS2010类模板更改,增加版权等等信息
  6. C++随机数生成方法(转载,赶紧搜藏)
  7. 【POJ3621】Sightseeing Cows 分数规划
  8. js 正则 exec() 和 match() 数据抽取
  9. Spring boot:logback文件配置
  10. Python--进阶处理3