多平台统一管理软件接口,如何实现多平台统一管理软件接口
286
2022-08-28
Flask请求钩子和g对象
请求钩子是通过装饰器方式实现的,flask支持四种请求钩子
@app.before_first_request 程序第一次请求前执行
@app.before_request 每次程序请求前执行
@app.after_request 程序运行之后执行,前提是程序无报错
@app.teardown_request 程序运行之后执行,不管报不报错都执行
视图函数名可以随便起的。
from flask import Flask , requestapp = Flask(__name__)@app.route("/index")def index(): print("index被执行") return "dj"@app.before_first_requestdef handle_before_first_request(): """在程序第一次请求前执行""" print("before_first_request被执行")@app.before_requestdef handle_before_request(): """每次程序请求前执行""" print("before_request被执行")@app.after_requestdef handle_after_request(response): """程序请求结束执行,前提是程序无异常""" print("after_request被执行") return response@app.teardown_requestdef handle_teardown_request(response): """ 在每次请求(视图函数处理之后)都被执行,无论视图函数是否出现异常,都被执行 工作在非调试模式时,debug=False """ print("handle_teardown_request被执行") return responseif __name__ == '__main__': app.run()
第一次执行的结果
第二次执行的结果
上下文对象
g对象方法
from flask import Flask , request , g
用于存储临时变量,可以在一次请求的多个视图函数之间传递参数
g.变量名 = 值
from flask import Flask, request, gapp = Flask(__name__)@app.route("/index")def index(): g.username = "zhangsan" return set_dj()def set_dj(): name = g.username return nameif __name__ == '__main__': app.run(debug=True)
可以在一次请求的多个视图函数之间传递参数
flask_script脚本的使用
使用命令行启动脚本
首先需要安装flask_script
pip install flask_script
导入
from flask_script import Managermanager = Manager(app) 创建app的应用对象,将业务全部接管过来给manager
from flask import Flaskfrom flask_script import Manager # 启动命令的管理类app = Flask(__name__)# 创建Manager类的管理对象# 创建当前flask应用的管理对象,通过创建出来的对象接手该应用的操作manager = Manager(app)@app.route("/index")def index(): return "index page"if __name__ == '__main__': # app.run(debug=True) # 通过脚本启动 manager.run()
所以在启动的时候就可以使用 manager.run() 启动
python3 10_flask_script.py runserver
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~