前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django基础篇-中间件

Django基础篇-中间件

作者头像
小团子
发布2019-07-18 11:12:34
3310
发布2019-07-18 11:12:34
举报
文章被收录于专栏:数据云团数据云团
  • Django 中间件(Middleware)
  • 模板上下文处理器(context processor)

① Django 中间件(Middleware)

是一个轻量级、底层的“插件”系统,可以介入 Django 的请求和响应处理过程,修改 Django 的输入或输出。

  • 激活中间件

需要把它添加到 Django 配置文件中的 MIDDLEWARE_CLASSES 元组中。

  • 自定义中间件

每个中间件组件是一个独立的 Python 类,可以定义下面方法中的一个或多个

  1. _init_:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件。
  2. process_request(request):执行视图之前被调用,在每个请求上调用,返回 None 或 HttpResponse 对象。
  3. process_view(request, view_func, view_args, view_kwargs):调用视图之前被调用,在每个请求上调用,返回 None 或 HttpResponse 对象。
  4. process_template_response(request, response):在视图刚好执行完毕之后被调用,在每个请求上调用,返回实现了 render 方法的响应对象。
  5. process_response(request, response):所有响应返回浏览器之前被调用,在每个请求上调用,返回 HttpResponse 对象。
  6. process_exception(request, response, exception):当视图抛出异常时调用,在每个请求上调用,返回一个 HttpResponse 对象。

# 例子

与 settings.py 同级目录下创建 mymiddleware.py 文件,定义类 MyException,实现自定义异常 process_exception 方法

将类 MyException 注册到 settings.py 中间件中

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档