10.Flask 中请求钩子的理解和应用

在客户端 和 服务器 交互的过程中,有些准备工作或扫尾工作需要处理,比如:

1.在请求开始时,建立数据库连接;

2.在请求开始时,根据需求进行权限校验;

3.在请求结束时,指定数据的交互格式;

为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。

 

请求钩子是通过装饰器的形式实现的,Flask支持如下四种请求钩子:

  • before_first_request
    • 在处理第一个请求前执行

  • before_request
    • 在每次请求前执行
    • 如果在某修饰的函数中返回了一个响应,视图函数将不再被调用
  • after_request
    • 如果没有抛出错误,在每次请求后执行
    • 接受一个参数:视图函数作出的响应
    • 在此函数中可以对响应值在返回之前做最后一步修改处理
    • 需要将参数中的响应在此参数中进行返回
  • teardown_request
    • 在每次请求后执行(就算有错误抛出也要执行)
    • 接受一个参数:错误信息,如果有相关错误抛出

案例:

@api.after_request
def after_request(response):
"""设置默认的响应报文格式为 application/json"""
	# 如果响应报文 response 的 Content-Type 是以 text 开头,则将其改为
	# 默认的 json 类型
	if response.headers.get("Content-Type").startswith("text"):
		response.headers["Content-Type"] = "application/json"
	return respon

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值