我是靠谱客的博主 慈祥战斗机,最近开发中收集的这篇文章主要介绍Flask-Script,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

from flask_script import Manager
from flask_app import app

manager = Manager(app)

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

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

command即是命令行,我们把脚本命令代码放在一个叫做manage.py文件中,不需要运行这个文件,直接在终端运行python manage.py hello命令,就可以看到输出hello了

定义命令的三种方法

  1. 使用@command装饰器
  2. 使用类继承自Command类
from flask_script import Command,Manager
from flask_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='xima')
@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(f"hello {name}")

如果要在指定参数的时候,动态的做一些事情,可以使用get_options方法

class Hello(Command):
	def __init__(self,default_name='xima'):
	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)

最后

以上就是慈祥战斗机为你收集整理的Flask-Script的全部内容,希望文章能够帮你解决Flask-Script所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部