Flask之flask-script模块使用


Posted in Python onJuly 26, 2018

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

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

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

创建并运行命令

首先,创建一个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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python构建Hopfield网络的教程
Apr 14 Python
python读写json文件的简单实现
Apr 11 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
python中字符串内置函数的用法总结
Sep 13 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
python实现弹窗祝福效果
Apr 07 Python
Python字符串匹配之6种方法的使用详解
Apr 08 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
python保留小数位的三种实现方法
Jan 07 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 #Python
TensorFlow用expand_dim()来增加维度的方法
Jul 26 #Python
Python迭代器与生成器基本用法分析
Jul 26 #Python
Python实现矩阵相乘的三种方法小结
Jul 26 #Python
python实现泊松图像融合
Jul 26 #Python
python中的decorator的作用详解
Jul 26 #Python
python opencv实现旋转矩形框裁减功能
Jul 25 #Python
You might like
PHP的开合式多级菜单程序
2006/10/09 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
Python入门篇之条件、循环
2014/10/17 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
怎么样写好简历中的自我评价
2013/10/25 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
公司合作意向书范文
2014/07/30 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
恰同学少年观后感
2015/06/08 职场文书
提档介绍信范文
2015/10/22 职场文书