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之从if开始语句的征程
Sep 14 Python
python处理二进制数据的方法
Jun 03 Python
Python文件操作基本流程代码实例
Dec 11 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
python调用百度语音REST API
Aug 30 Python
python协程之动态添加任务的方法
Feb 19 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 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在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
javascript数组详解
2014/10/22 Javascript
详解JS函数重载
2014/12/04 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python快速查找算法应用实例
2014/09/26 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
Django的models模型的具体使用
2019/07/15 Python
解决Django中多条件查询的问题
2019/07/18 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
青年文明号复核材料
2014/02/11 职场文书
商业房地产广告语
2014/03/13 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
大班上学期个人总结
2015/02/13 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
法律进社区活动总结
2015/05/07 职场文书
结婚司仪主持词
2015/06/29 职场文书
Python 中的 copy()和deepcopy()
2021/11/07 Python