Flask系列教程(7)——Flask-Script
来源:互联网 发布:json保存学生资料 编辑:程序博客网 时间:2024/06/06 04:58
#flask进阶(Flask-Script):
Flask-Script
的作用是可以通过命令行的形式来操作Flask
。例如通过命令跑一个开发版本的服务器、设置数据库,定时任务等。要使用Flask-Script
,可以通过pip install flask-script
安装最新版本。首先看一个最简单的例子:
# manage.pyfrom flask_script import Managerfrom your_app import appmanager = Manager(app)@manager.commanddef hello(): print 'hello'if __name__ == '__main__': manager.run()
我们把脚本命令代码放在一个叫做manage.py
文件中,然后在终端运行python manage.py hello
命令,就可以看到输出hello
了。
定义命令的三种方法:
- 使用
@command
装饰器:这种方法之前已经介绍过。就不过多讲解了。 - 使用类继承自
Command
类:
from flask_script import Command,Managerfrom your_app import appmanager = Manager(app)class Hello(Command): "prints hello world" def run(self): print "hello world"manager.add_command('hello',Hello())
使用类的方式,有三点需要注意:
- 必须继承自
Command
基类。 - 必须实现
run
方法。 必须通过
add_command
方法添加命令。- 使用
option
装饰器:如果想要在使用命令的时候还传递参数进去,那么使用@option
装饰器更加的方便:
- 使用
@manager.option('-n','--name',dest='name')def hello(name): print 'hello ',name
这样,调用hello
命令:
python manage.py -n xt
或者
python manage.py --name xt
就可以输出:
hello xt
添加参数到命令中:
- option装饰器:以上三种创建命令的方式都可以添加参数,
@option
装饰器,已经介绍过了。看以下示例介绍展示添加多个参数的方式:
@manager.option('-n', '--name', dest='name', default='joe')@manager.option('-u', '--url', dest='url', default=None)def hello(name, url): if url is None: print "hello", name else: print "hello", name, "from", url
- command装饰器:command装饰器也可以添加参数,但是不能那么的灵活,如下示例:
@manager.commanddef hello(name="Fred") print "hello", name
- 类继承:类继承也可以添加参数,看以下示例:
from flask_Flask import Comman,Manager,Optionclass Hello(Command): option_list = ( Option('--name','-n',dest='name'),) def run(self,name): print "hello %s" % name
如果要在指定参数的时候,动态的做一些事情,可以使用get_options
方法,示例如下:
class Hello(Command): def __init__(self,default_name='Joe'): self.default_name = default_name def get_options(self): return [ Option('-n','--name',dest='name',default=self.default_name), ] def run(self,name): print 'hello',name
对Python和Flask感兴趣,可以加群:526929231一起讨论和学习哦。
阅读全文
0 0
- Flask系列教程(7)——Flask-Script
- Flask系列教程(8)——Flask-Migrate
- Flask系列教程(9)——Flask-WTF
- Flask系列教程(1)——认识web
- Flask系列教程(2)——URL和视图
- Flask系列教程(3)——Jinja2模板
- Flask系列教程(4)——SQLAlchemy数据库
- Flask系列教程(5)——视图高级
- Flask系列教程(10)——上下文
- Flask系列教程(11)——cookie和session
- Flask 扩展: Flask-Script
- Flask 扩展 Flask-Script
- Flask-script
- Flask-Script
- Flask系列教程(一)-----------入门
- 《Flask development》flask-script插件
- Flask Web开发—importerror: no module named flask.ext.script
- Flask零基础到项目实战(五)Flask-Script
- Linux初学者必知的5个学习网站
- 关于freeswitch1.5在ubuntu14.04上安装遇到的问题1
- python编程快速上手--重点整理(上)
- github生产SSH和查看相应的SSH
- 转下需要经常看看的磁盘知识,来自大众点评技术博客
- Flask系列教程(7)——Flask-Script
- 设置局域网访问网站的方法
- 本地文件上传github总结
- 网络编程之UDP协议
- 2017年7月7日12:22:30
- 使用码云(git.oschina)做私有的CocoaPods仓库
- Java环境变量设置
- Flask系列教程(8)——Flask-Migrate
- 笔记2017.7.7