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 相关文章推荐
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
通过数据库向Django模型添加字段的示例
Jul 21 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
python增加图像对比度的方法
Jul 12 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
python新手学习使用库
Jun 11 Python
python 爬取小说并下载的示例
Dec 07 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
python b站视频下载的五种版本
May 27 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(5) 类和对象
2010/02/16 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
vue的toast弹窗组件实例详解
2018/05/14 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python实现dict版图遍历示例
2014/02/19 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
网络研修随笔感言
2014/02/17 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
公司股东合作协议书
2014/09/14 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
个人自荐书怎么写
2015/03/26 职场文书
硕士论文致谢范文
2015/05/14 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
Elasticsearch 聚合查询和排序
2022/04/19 Python