Django--中间件

客官°小女子只卖身不卖艺 2023-08-17 16:35 172阅读 0赞

Django中间件

  Django默认由七个中间件

  1468739-20190921200631937-150815152.png

  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方法,依次往回走1468739-20190921221117728-719872769.png

Django请求生命周期1468739-20190921221934608-1721789855.png

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

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

发表评论

表情:
评论列表 (有 0 条评论,172人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Django中间技术

    怎么理解中间件呢,其实如果你使用过java和数据库你就知道,中间件技术是两个模块中间的桥梁,就好比两块大陆之间的一座桥梁 > 如果需要详细了解中间件技术可以查看此文档

    相关 django中间

    中间件函数是django框架给我们预留的函数接口,让我们可以干预请求和应答的过程。 ![1682918-20190610110717958-1367766905.png][]