Flask学习笔记(十一)-Flask-script使用详解
一、定义
flask-script是一个支持自定义命令的工具,为Flask程序添加了一个命令行解析器,可以让程序从命令行直接执行相应的程序。
flask-script支持在Flask中编写外部脚本,这包括运行开发服务器、定制python-shell、设置数据库的脚本、cronjobs和其他属于web应用程序本身之外的命令行任务。
二、安装flask_script
1 | pip install Flask-Script |
三、使用案例
1、简单使用
将flask-script继承在Flask项目manager.py中,其代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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程序:
1 | python manager.py runserver |
运行结果如下:
在app.py runserver后面可以接以下命令:
1 | [-?] [-h HOST] [-p PORT] [--threaded] [--processes PROCESSES] [--passthrough-errors] [-d] [-D] [-r] [-R] [--ssl-crt SSL_CRT] [--ssl-key SSL_KEY] |
举个简单的例子,修改flask服务的端口号,命令行执行代码如下所示:
1 | python manager.py runserver -p 8080 |
运行结果如下:
2、装饰器@manager.command
在刚才的基础上,添加可以输出的函数,并在命令行输出,需要调用装饰器@manager.command
,无法传参。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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() |
命令行:
1 | python manager.py xf_say "fuck you" 2 |
- 这里分别给函数<xf_say>传了两个参数,
"fuck you" 和2
- 运行结果
1 | fuck youfuck you |
3、装饰器@manager.opation
用opation装饰器看一看有什么不同(示例同上@manager.option)
- 在这里,option传递了两种参数:
manager.option("-短指令","--长指令",dest="参数名")
命令行:
1 2 | python manager.py xftest -n 小风 -a 帅 python manager.py xftest --name 波音737MAX --adj 不安全 |
运行结果:

备注:
1、当函数有需要传参时,最好用@manager.opation
:
2、当函数没有参数时,最好用@manager.command
。
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/16774195.html
分类:
flask系列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!