Python flask-script 模块详解
作者:trnx 发布时间:2023-03-09 06:20:20
标签:Python,flask-script,模块
1 作用
通过 flask-script 可以以命令的形式,执行 flask 语句。
提供向 Flask 插入外部脚本的功能,如 运行一个开发服务器、运行 shell、执行数据库脚本。
2 安装
pip install flask-script
3 所有要运行的命令都放在 manager.py 中
from flask import Flask
from flask_script import Manager, Command
from loguru import logger
# [ 生成一个 Flask 实例 ]
app = Flask(__name__)
# [ Manager 构造方法,只接受一个参数,
# 就是 Flask 实例,Manager 负责追踪整个 命令 的处理过程 ]
manager = Manager(app)
4 三种方式 创建命令
4.1 方式一 创建 Command子类
# 定义要执行的命令类型 Hello 继承 Command
class Hello(Command):
# 重写 Command 类的 run() 方法
def run(self):
''' 要执行的命令 '''
logger.info('sub class of Command')
if __name__ == '__main__':
'''
将 hello 命令加入到 manager ,
第一个参数为自己起的的命令简称,
第二个参数为 Command 子类 Hello 的实例
'''
manager.add_command('hello', Hello())
manager.run()
在 cmd 执行 python manager.py hello [ hello 就是自己的 命令的简称 ]
这样就会打印出 sub class of Command
4.2 方式二 使用装饰器 @manager.command
'''
@manager.command 其实 manager 就是上面初始化出来的 Manager 类的实例,
如果 Manager 类的实例名称为 manager_1 ,则装饰器也要改成 @manager_1.command
'''
'''
使用 装饰器 @manager.command 后,命令的简称就是 函数的名字 hello_command,
在 __main__ 中 就不需要 在 通过 manager.add_command() 将 命令简称加入到 command 实例中了
'''
@manager.command
def hello_command():
logger.info('@manager.command')
if __name__ == '__main__':
'''
在 __main__ 中 就不需要 在 通过 manager.add_command() 将 命令简称加入到 command 实例中了
'''
manager.run()
在 cmd 执行 python manager.py hello_command [ hello_command 就是自己的 命令的简称 ]
这样就会打印出 @manager.command
4.3 方式三 使用装饰器 @manager.option
'''
-u 为命令参数的 简写,--username 为命令参数的 全称
(类似于 Linux 命令的参数,参数简写 为一个 -,参数全称为 -- ),
无论是参数的 简写、还是 全称 都必须以 - 开头,但是 全称也可以只以 一个 - 开头,
但建议以 两个 - 开头,因为更符合编码规范,dest 的值必须与 hello_option 函数(也就是命令)的 入参名
称 完全相同,因为 dest 就是表示这个参数值,传递给 hello_option 命令函数的那个入参的;default 表示
参数的默认值,也就是如果执行 python manager.py hello_option 执行命令时,不带参数,就用参数的默认
值
'''
@manager.option('-u', '--username', dest='username', default='zhangsan')
@manager.option('-p', '--password', dest='password', default='123456')
def hello_option(username, password):
logger.info('@manage.option')
logger.info(f'username = {username}, password = {password}')
if __name__ == '__main__':
'''
在 __main__ 中 就不需要 在 通过 manager.add_command() 将 命令简称加入到 command 实例中了
'''
manager.run()
来源:https://blog.csdn.net/nanquanbiao/article/details/121035335


猜你喜欢
- 本文将通过一下几个方面来一一进行解决 1、程序的主要功能
- 导言Python官方文档对于内置函数的介绍较为简略,但这些内置函数在日常工作中却扮演着不可或缺的角色。为了更加便捷地使用和查阅这些函数,笔者
- 摘要: 利用binlog闪回误操作数据。基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚
- 前言:在Vue项目中,当访问的页面路由不存在或错误时,页面显示为一片空白。然而,通常我们需要对访问url不存在或者错误的情况下添加默认的40
- Python 链接抖音python下载抖音内容的帖子网上有一些,但都比较麻烦,需要通过adb连接安卓手机后,模拟操作。我这么懒,这种事儿玩不
- 一、定义(1)如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。我
- 前言最近在爬行 nosec.org 的数据,看了下需要模拟登录拿到cookie后才能访问想抓的数据,重要的是 nosec.org 的登录页面
- 我们知道分析MySQL语句查询性能的方法除了使用EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定
- 前言Python 开发者可能都听说过鸭子类型和猴子补丁这两个词,即使没听过,也大概率写过相关的代码,只不过并不了解其背后的技术要点是这两个词
- [pre]REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE[/pre][pre] tbl_name[,tb
- --利用T-SQL语句,实现数据库的备份与还原的功能 ----体现了SQL Server中的四个知识点: ----1. 获取SQL Serv
- Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于 * 底发明,第一个
- master库对于SQLServer来说,是很重要的系统数据库,保存着所有Sqlserver的用户信息、数据库信息等,当数据库崩溃时,mas
- Python转json时出现中文乱码设置报文头# -*- coding:gbk -*- 连接数据库设置编码mysql = MyS
- 你是否有时想知道什么人访问你的站点,什么时间,IP地址等。下面我就这个问题向大家来阐述一下。这个例子使用文本文件来写入用户的信息创建一个lo
- xml.etree.ElementTree可以通过支持的有限的XPath表达式来定位元素。语法ElementTree支持的语法如下:语法说明
- 使用bootstrap界面美观,可预览,可拖拽上传,可配合ajax异步或同步上传,下面是效果图:前端代码:fileinput.html<
- 开门见山,直接以例子介绍: 代码如下:CREATE TABLE [dbo].[course]( [id] [int] NULL,
- python运行其他程序的实现方法  
- 无参数函数先解释一下时间戳,所谓时间戳,即自1970年1月1日00:00:00所经历的秒数,然后就可以理解下面的函数了。下面代码默认from