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

  Flask-Script与Flask本身的工作方式类似,只需要定义和添加从命令行中被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插件的更多相关文章

  1. No module named flask.ext.script 解决方法

    把 .ext. 换成 _ 就OK了 from flask.ext.script import Manager from flask_script import Manager

  2. Inside Flask - flask 扩展加载过程

    Inside Flask - flask 扩展加载过程 flask 扩展(插件)通常是以 flask_<扩展名字> 为扩展的 python 包名,而使用时,可用 import flask. ...

  3. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

  4. [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)

    目录 1.效果预览 2.新增逻辑概览 3.tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4.__init__.py 逻辑介绍 5.upload.html ...

  5. Inside Flask - flask.__init__.py 和核心组件

    Inside Flask - flask.__init__.py 和核心组件 简单的示例 首先看看一个简单的示例.使用 Flask ,通常是从 flask 模块导入 Flask . request 等 ...

  6. Inside Flask - Flask 简介

    Inside Flask - Flask 简介 前言 Flask 的设计目标是实现一个 wsgi 的微框架,其核心代码保持简单和可扩展性,很容易学习.对于有一定经验初学者而言,跟着例子和一些书的代码来 ...

  7. Flask - Flask的蓝图(BluePrint)

    目录 Flask - Flask的蓝图(BluePrint) 一. 初始Flask蓝图 进阶Flask蓝图 使用蓝图做一个增删改查 1.使用蓝图进行web应用搭建: 2.使用Flask蓝图,查看学生信 ...

  8. day92:flask:flask简介&基本运行&路由&HTTP请求和响应

    目录 1.Flask简介 2.关于使用flask之前的准备 3.flask的基本运行 4.flask加载配置 5.传递路由参数(没有限定类型) 6.传递路由参数(通过路由转换器限定路由参数的类型) 7 ...

  9. Flask之Flask_Session插件

    一,Flask_Session介绍 因为flask自带的session是将session存在cookie中: 所以才有了第三方Flask_session插件,可以将session存储在我们想存储的数据 ...

随机推荐

  1. Linux端口占用情况查看

    1,查看8010端口是否被占用[root@cloud ~]# netstat -an|grep 8010tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN 2,查看8010是被 ...

  2. 数据库系统概论——SQL

    [toc] 一.SQL查询语言概览 视图 从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图 基本表 本身独立存在的表 SQL中一个 ...

  3. mybatis执行过程及经典面试题

    Mybatis执行流程 mybatis中xml解析是通过SqlSessionFactoryBuilder.build()方法. 初始化mybatis(解析xml文件构建成Configuration对象 ...

  4. TensorFlow2.0(五):张量限幅

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  5. 利用双重检查锁定和CAS算法:解决并发下数据库的一致性问题

    背景 ​ 最近有一个场景遇到了数据库的并发问题.现在先由我来抽象一下,去掉不必要的繁杂业务. ​ 数据库表book存储着每本书的阅读量,一开始数据库是空的,不存在任何的数据.当用户访问接口的时候,判断 ...

  6. SpringBoot注入Mapper失败

    SpringBoot注入Mapper失败,可能是因为没有加扫描Mapper层的注解 方式一:在所有mapper接口使用@Mapper注解 @Mapper public interface UserMa ...

  7. python与数据存储

    思考:为什么使用计算机? 存储数据,计算数据 思考:数据存在哪里? 数据存在内存里 内存:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的 ...

  8. link 和 @import 的区别是什么?

    link语法结构: <link href="url" rel="stylesheet" type="text/css"> @im ...

  9. redis安装详细

      1.cd命令到你的下载文件夹下 2.输入命令下载redis ,可以自己选择下载的路径,redis表示版本号 wget http://download.redis.io/releases/redis ...

  10. C语言打印当前所在函数名、文件名、行号

    printf("[%s %s] %s: %s: %d\n", \ __DATE__, __TIME__, __FILE__, __func__, __LINE__); 内核驱动中: ...