flask-script组件

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. 关于favicon.ico,shortcut icon,icon
  2. 我的Windows软件清单
  3. Android开发之时间日期2
  4. 51nod 循环数组最大子段和
  5. Extjs TabPanel 选项卡延迟加载
  6. HAST 使用笔记
  7. CSS如何实现图片上下垂直居中
  8. SQL Server视图
  9. bootstrap 切换页签失效的解决方法
  10. 如何查看linux服务器内存使用情况
  11. 关于REST API设计的文章整理
  12. Java 终结方法 避免使用终结方法
  13. unbuntu系统( PC机 )中安装360wifi步骤
  14. 如何在github上下载单个文件
  15. css中根据不同分辨率设置不同样式
  16. react-native启动页面设置,react-native-splash-screen
  17. springboot security 获取当前登录用户名
  18. NBUT 1218 You are my brother 2010辽宁省赛
  19. mysql升级到5.6源
  20. 求两个Linux文本文件的交集、差集、并集

热门文章

  1. Linux 常用命令之 mv cp scp
  2. elasticsearch mappings之dynamic的三种状态
  3. epoll 性能分析(解决占用CPU 过高问题)
  4. Python unittest 之 BeautifulReport可视化报告
  5. win10电脑休眠后无法唤醒的解决办法
  6. java.math包简介
  7. CM金丝雀Canary报错
  8. 声明一个LIst类型的数组
  9. jquery html select 清空保留第一项
  10. laravel框架之修改