当前位置 : 主页 > 编程语言 > python >

Flask请求钩子和g对象

来源:互联网 收集:自由互联 发布时间:2022-06-20
请求钩子是通过装饰器方式实现的,flask支持四种请求钩子 @app.before_first_request 程序第一次请求前执行 @app.before_request 每次程序请求前执行 @app.after_request 程序运行之后执行,前提是程序

请求钩子是通过装饰器方式实现的,flask支持四种请求钩子

@app.before_first_request        程序第一次请求前执行

@app.before_request                每次程序请求前执行

@app.after_request                程序运行之后执行,前提是程序无报错

@app.teardown_request        程序运行之后执行,不管报不报错都执行

视图函数名可以随便起的。

from flask import Flask , request

app = Flask(__name__)

@app.route("/index")
def index():
print("index被执行")
return "dj"

@app.before_first_request
def handle_before_first_request():
"""在程序第一次请求前执行"""
print("before_first_request被执行")

@app.before_request
def handle_before_request():
"""每次程序请求前执行"""
print("before_request被执行")

@app.after_request
def handle_after_request(response):
"""程序请求结束执行,前提是程序无异常"""
print("after_request被执行")
return response

@app.teardown_request
def handle_teardown_request(response):
"""
在每次请求(视图函数处理之后)都被执行,无论视图函数是否出现异常,都被执行
工作在非调试模式时,debug=False
"""
print("handle_teardown_request被执行")
return response

if __name__ == '__main__':
app.run()

第一次执行的结果

Flask请求钩子和g对象_传递参数

第二次执行的结果

Flask请求钩子和g对象_flask_02



上下文对象

g对象方法

from flask import Flask , request , g

用于存储临时变量,可以在一次请求的多个视图函数之间传递参数

g.变量名 = 值

from flask import Flask, request, g

app = Flask(__name__)

@app.route("/index")
def index():
g.username = "zhangsan"
return set_dj()

def set_dj():
name = g.username
return name

if __name__ == '__main__':
app.run(debug=True)

Flask请求钩子和g对象_程序运行_03

可以在一次请求的多个视图函数之间传递参数



flask_script脚本的使用

使用命令行启动脚本

首先需要安装flask_script

pip install flask_script

导入

from flask_script import Manager
manager = Manager(app) 创建app的应用对象,将业务全部接管过来给manager


from flask import Flask
from 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

Flask请求钩子和g对象_flask_04

Flask请求钩子和g对象_传递参数_05

上一篇:Flask模板与自定义过滤器
下一篇:没有了
网友评论