zoukankan      html  css  js  c++  java
  • Django--中间件

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

  • 相关阅读:
    十条jQuery代码片段助力Web开发效率提升
    C#如何释放已经加载的图片 (转)
    获取文件夹下最新文件 (转)
    时间格式转换
    调整ListBox控件的行间距及设置文本格式
    c++builder调用vc的dll
    mws文件中的tab文件改为相对路径
    .net 对配置文件内容的操作
    winform下mapxtreme2008 v7.0 生成release版提示找不到dll问题
    vue实现按字母A-Z选择城市
  • 原文地址:https://www.cnblogs.com/tulintao/p/11565175.html
Copyright © 2011-2022 走看看