首页 > 其他分享 >Flask学习笔记(十一)-Flask-script使用详解

Flask学习笔记(十一)-Flask-script使用详解

时间:2022-10-10 00:23:28浏览次数:72  
标签:__ script Flask app flask manager 详解 --

一、定义

flask-script是一个支持自定义命令的工具,为Flask程序添加了一个命令行解析器,可以让程序从命令行直接执行相应的程序。

flask-script支持在Flask中编写外部脚本,这包括运行开发服务器、定制python-shell、设置数据库的脚本、cronjobs和其他属于web应用程序本身之外的命令行任务。

二、安装flask_script

pip install Flask-Script

三、使用案例  

1、简单使用

将flask-script继承在Flask项目manager.py中,其代码如下所示:

from flask import Flask
from flask_script import Manager   #导入Manager方法

app = Flask(__name__)

manager = Manager(app)  # 将命令行绑定在app应用中

@app.route('/')
def index():
    return 'hello world'

if  __name__ == "__main__"
    manager.run()

 由于我们通过Manager()方法将命令行绑定在app应用中,所以需要命令行执行下面代码来启动flask程序: 

python manager.py runserver

运行结果如下:  

 

 在app.py runserver后面可以接以下命令:

[-?] [-h HOST] [-p PORT] [--threaded] [--processes PROCESSES] [--passthrough-errors] [-d] [-D] [-r] [-R] [--ssl-crt SSL_CRT] [--ssl-key SSL_KEY]

举个简单的例子,修改flask服务的端口号,命令行执行代码如下所示:

python manager.py runserver -p 8080

运行结果如下:

2、装饰器@manager.command

 在刚才的基础上,添加可以输出的函数,并在命令行输出,需要调用装饰器@manager.command ,无法传参。

from flask import Flask
from flask_script import Manager   #导入Manager方法

app = Flask(__name__)

manager = Manager(app)  # 将命令行绑定在app应用中

@app.route('/')
def index():
    return 'hello world'

@manager.command
def welcome():    #自定义flask-script
    print('welcome')

# 用manager.command方法,可以自定义旗下的函数,
# 后面跟参数,每个参数加空格即可
# 这样在命令行就可以执行该函数
@manager.command
def xf_say(arg, num):
    print(arg * int(num))

@manager.option("-n", "--name", dest="name")
@manager.option("-a", "--adj", dest="adj")
def xftest(name, adj):
    print(name + "你真的很" + adj)


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

命令行:

python manager.py xf_say "fuck you" 2
  • 这里分别给函数<xf_say>传了两个参数,"fuck you" 和2
  • 运行结果
fuck youfuck you

3、装饰器@manager.opation

用opation装饰器看一看有什么不同(示例同上@manager.option)

  • 在这里,option传递了两种参数:manager.option("-短指令","--长指令",dest="参数名")

命令行:

python manager.py xftest -n 小风 -a 帅
python manager.py xftest --name 波音737MAX --adj 不安全

 运行结果:

 备注:

1、当函数有需要传参时,最好用@manager.opation

2、当函数没有参数时,最好用@manager.command

标签:__,script,Flask,app,flask,manager,详解,--
From: https://www.cnblogs.com/xfbk/p/16774195.html

相关文章

  • JavaScript-栈结构
     1.认识栈结构 后进先出       2.栈的面试题   不是一次性进栈,是可以一边进一边出的  3.栈结构的封装  操作   封装<!DOC......
  • html css JavaScript web网页设计期末作业 共5页【视频演示】
    ......
  • @firewalld防火墙详解
    文章目录​​firewalld​​​​一、防火墙概述​​​​二、防火墙区域管理​​​​1、区域​​​​2、主要的区域​​​​三、防火墙基本指令参数​​​​1、firewall-cmd命......
  • 11@数组使用详解
    文章目录​​数组​​​​一、数组介绍​​​​1、什么是数组?​​​​2、为何要用数组?​​​​二、数组的使用​​​​1、数组的定义​​​​2、访问数组内元素​​​​......
  • 02@变量与常量(详解)
    文章目录​​变量​​​​一、变量介绍​​​​1、什么是变量​​​​2、为何要有变量​​​​二、变量的使用​​​​1、先定义​​​​2、后引用​​​​3、删除变量​......
  • @Devops jenkins安装jenkins的项目构建详解
    文章目录​​Devops​​​​一、jenkins安装步骤​​​​1、安装jdk​​​​2、获取安装包​​​​3、安装​​​​4、配置文件修改​​​​5、启动jenkins​​​​6、浏览......
  • [Typescript] Tips: Throw detailed error messages for type checks
    Youcanthrowdetailederrormessagesfortypechecks.Here,Imovearuntimecheckinafunctiontothetypelevel,meaningyougetadetailederrorifyouus......
  • Android进阶笔记-7. Context详解
    Context数量Activity数量+Service数量+1(1为Application)Context的继承关系Context下有两个子类,ContextWrapper是上下文功能的封装类,而ContextImpl则是上下文功能的实现......
  • Go Mutex 源码详解
    前言在上一篇文章中,我们一起学习了如何使用​​Go​​​中的互斥锁​​Mutex​​​,那么本篇文章,我们就一起来探究下​​Mutex​​底层是如何实现的,知其然,更要知其所以......
  • @Zabbix版本升级(4.0-5.0版本升级详解)
    文章目录​​一、Zabbix5.0升级要求(zabbix服务端)​​​​1、环境支持:​​​​2、官方查看​​​​二、zabbix升级前环境版本查看(zabbix服务端)​​​​1、查看操作系统版本......