Flask:Flask-script插件

Posted xmcwm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask:Flask-script插件相关的知识,希望对你有一定的参考价值。

  Flask-Script插件扩展提供向Flask插入外部脚本的功能,包括一个开发用的服务器,一个定制的python shell,设置数据库的脚本,cronjobs,及其它运行在web应用之外的命令行任务,使得脚本与系统分开

  Flask-ScriptFlask本身的工作方式类似,只需要定义和添加从命令行中被Manager实例调用的命令,使用Flask-Script可以轻松的给Flask项目添加脚本命令

1、安装Flask-Script

命令:

pip install flask-script

技术图片

 2、创建并运行命令

  首先,创建一个python模板运行命令脚本,这里使用manage.py

  在该文件中,必须有一个Manager实例,Manager类追踪所有在命令行中调用的命令和处理过程的调用运行情况

  Manager只有一个参数——Flask实例

  调用Manage.run()启动Manager实例接收命令行中的命令

manage.py

from models import models
from views import app
from flask_script import Manager

manage = Manager(app)


# 当执行python manage.py migrate时调用migrate函数
@manage.command
def migrate():
    models.create_all()


if __name__ == __main__:
    manage.run()

  这样配置完毕后,我们可以再对pycharm进行配置,这样就可以使用pycharm运行项目,还可以使用Debug进行断点调试

技术图片

修改默认的runserver配置,命令:

manage.py

from views import app
from flask_script import Manager, Server

manage = Manager(app)
manage.add_command("runserver", Server(use_debugger=True, host="127.0.0.1", port=8000))

运行效果:

技术图片

  仅在命令行运行项目时候起作用,使用pycharm运行时该配置无效

3、使用Flask-Script创建命令的方法

(1)使用command子类

manage.py

from flask_script import Manager, Command

manage = Manager(app)


class Hello(Command):
    def run(self):
        print("hello")


manage.add_command("hello", Hello())

(2)使用command装饰器

manage.py

from flask_script import Manager

manage = Manager(app)


# 当执行python manage.py migrate时调用migrate函数
@manage.command
def migrate():
    models.create_all()

执行效果:

技术图片

(3)使用option装饰器

  复杂情况下,建议使用option

manage.py

from flask_script import Manager, Command

manage = Manager(app)


@manage.option("-n", "--name", dest="name", default="world")
def hello(name):
    print("hello %s" % name)

执行结果:

技术图片

以上是关于Flask:Flask-script插件的主要内容,如果未能解决你的问题,请参考以下文章

Flask 第九话之插件Flask-script

flask-script插件简单使用

flask扩展 -- flask-script

Flask-Script

Flask - flask-script

Flask之flask-script 指定端口