152. Python语言 的 Flask框架项目前导 之 Flask数据库 第八章 :Flask-Script

49 篇文章 0 订阅
22 篇文章 0 订阅

本章主题

  

关键词

  

Flask-Script

  Flask-Script 的作⽤是可以通过命令⾏的形式来操作 Flask。例如通过命令跑⼀个开发版本的服务器、设置数据库,定时任务等。要使⽤ Flask-Script ,可以通过 pip install flask-script 安装最新版本:

from flask_script import Manager
from your_app import app

manager = Manager(app)

@manager.command
def hello():
	print('hello')

if __name__ == '__main__':
	manager.run() 

  我们把脚本命令代码放在⼀个叫做 manage.py ⽂件中,然后在终端运⾏ python_manage.pyhello 命令,就可以看到输出 hello 了。

  

定义命令的三种方法

  1. 使⽤ @command 装饰器;
  2. 使⽤类继承⾃ Command类;
from flask_script import Command,Manager
from your_app import app

manager = Manager(app)

class Hello(Command):
	"prints hello world"

	def run(self):
		print("hello world")

manager.add_command('hello',Hello())

使⽤类的⽅式,有三点需要注意:

  • 必须继承⾃ Command 基类;
  • 必须实现 run ⽅法;
  • 必须通过 add_command ⽅法添加命令。
  1. 使⽤ option 装饰器:如果想要在使⽤命令的时候还传递参数进去,那么使⽤ @option装饰器更加的⽅便:
@manager.option('-n','--name',dest='name')
def hello(name):
	print('hello ',name)

  这样,调⽤ hello 命令:

python manage.py -n juran
python manage.py --name juran

  

添加参数到命令中

  • 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.command

def hello(name="Fred")
	print("hello", name) 
  • 类继承:类继承也可以添加参数
from flask_Flask import Comman,Manager,Option

class 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_n ame),
		]

	def run(self,name):
		print('hello',name)

  

总结小便条

本篇文章主要讲了以下几点内容:

  

  本章回顾暂时就到这了,如果还有点晕,那就把文章里所有引用的案例代码再敲几遍吧。拜拜~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值