【Python】Web学习笔记_flask(4)——钩子函数

钩子函数可以用来注册在请求处理的不同阶段执行出

Flask的请求钩子指的是在执行视图函数前后执行的一些函数,

之前是有4种,但是 before_first_request已经被删除了,使用时会报错

before_request:在每次请求前执行,比如校验权限,也可以用来记录用户最后的在线时间

after_request:每次请求后调用,前提是没有未处理的异常抛出

teardown_request:每次请求之后调用,即使有未处理的异常抛出

python 复制代码
from flask import Flask,request,g

app = Flask(__name__)
@app.route('/')
def index():
    print('视图函数执行')
    return 'index page'



#每次请求之前都会执行
@app.before_request
def before_request():
    print('before_request')

#请求后执行
@app.after_request
def after_request(response):
    print('after_request')
    return response

#无论视图函数是否出现异常,每次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息
@app.teardown_request
def teardown_request(error):
    print('teardown_request:error %s' % error)


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

第一次进入页面

再次进入页面:

相关推荐
咕噜咕噜啦啦1 小时前
Vue3响应式开发
前端·javascript·vue.js
清水白石0082 小时前
隔离的艺术:用 `unittest.mock` 驯服外部依赖,让测试真正可控
python
码农小韩2 小时前
AIAgent应用开发——大模型理论基础与应用(五)
人工智能·python·提示词工程·aiagent
百锦再2 小时前
Java中的char、String、StringBuilder与StringBuffer 深度详解
java·开发语言·python·struts·kafka·tomcat·maven
Jonathan Star3 小时前
Ant Design (antd) Form 组件中必填项的星号(*)从标签左侧移到右侧
人工智能·python·tensorflow
huangql5203 小时前
布局单位与设计稿换算:从「看清」到「量准」
前端
努力努力再努力wz3 小时前
【Linux网络系列】:TCP 的秩序与策略:揭秘传输层如何从不可靠的网络中构建绝对可靠的通信信道
java·linux·开发语言·数据结构·c++·python·算法
牛奶3 小时前
你不知道的JS(下):深入编程
前端·javascript·电子书
deep_drink3 小时前
【论文精读(三)】PointMLP:大道至简,无需卷积与注意力的纯MLP点云网络 (ICLR 2022)
人工智能·pytorch·python·深度学习·3d·point cloud
牛奶3 小时前
你不知道的JS(下):深入JS(下)
前端·javascript·电子书