博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django--中间件
阅读量:4451 次
发布时间:2019-06-07

本文共 997 字,大约阅读时间需要 3 分钟。

Django中间件

  Django默认由七个中间件 

  

 

 

 

  WSGI、wsgiref、uwsgi的区别

    WSGI是协议

    wsgiref和uwsgi是实现该协议的模块

 

Django默认有七个中间件,但是Django暴露给用户可以自定义中间件,并且里面可以写五种方法

ps:

  1、在Django中请求来的时候会依次执行每一个中间件里面的process_request方法(如果没有直接通过)

  2、响应走的时候会依次执行每一个中间件里面的process_response方法(如果没有直接通过)

 

 

Django中自定义中间件

  1、在app中新建一个任意名字的文件夹,里面新建一个任意名字的py文件

  2、在文件中创建一个类,然后在类中写process_request方法以及process_response方法(切记不要打错)

  3、然后在setting中的中间件中将这个类添加进去

 

Django中间件中的五个方法:  

  • process_request(self,request)
  • process_view(self, request, view_func, view_args, view_kwargs)
  • process_template_response(self,request,response)
  • process_exception(self, request, exception)
  • process_response(self, request, response)

以上方法的返回值可以是None或一个HttpResponse对象,如果是None,则继续按照Django定义的规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回给用户  

 

 

 如果process_request中返回了Httpresponse对象,那么会立即返回,不会继续执行其他的中间件

 

 如果process_request方法中返回了httpresponse对象,那么会走同级别的process_response方法,依次往回走

 

 

Django请求生命周期

 

 

Django中间件能够帮我们实现网站全局的身份验证,黑名单,白名单,访问频率的限制,反爬相关的内容       

 

转载于:https://www.cnblogs.com/tulintao/p/11565175.html

你可能感兴趣的文章
WCF netTcp配置
查看>>
数据类型转换
查看>>
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
什么是FreeMaker
查看>>
设计模式学习笔记(总结篇:模式分类)
查看>>
算法笔记_075:蓝桥杯练习 最短路(Java)
查看>>
TCP的三次握手/建立连接
查看>>
Python 教程阅读笔记(一):使用解释器
查看>>
运算符重载
查看>>
SDWebImage 新版接口使用方法
查看>>
简单的jQuery检测注册用户名
查看>>
DataTable导出为word,excel,html,csv,pdf,.txt
查看>>
android ListView详解
查看>>
软件工程 第一次作业
查看>>
Content Server HA搭建
查看>>
vue-textarea 自适应高度
查看>>
(2)数据结构——线性表(链表)实现
查看>>
[leetCode]Linked List Cycle I+II
查看>>
leetcode中的python学习
查看>>
sqlserver打开对象资源管理器管理的帮助文档的快捷键
查看>>