• django中间件以及解决csrf


      一.中间件,顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎使用,用不好会影响到性能.

      怎么用:

        自定义中间件:

          1.写一个类,继承MiddlewareMixin,

          2.在类中写方法:

            precess_request

          3.在settings中配置

        5个方法 (process_request, process_response)
          *****

          process_request(self,request)

            执行顺序,settings中中间件自上而下执行

            请求来的时候会执行它

            request对象,就是本次请求的request对象,对它处理后,视图函数拿到的就是处理后的request对象

          process_view(self,request,callback,callback_args,callback_kwargs)

            callback是视图函数,callback_args,callback_kwargs是视图函数的参数

            可以调用callback方法

          process_template_response(self,request,response)

            只有视图函数返回的对象中有render方法的时候,才会执行

          process_exception(self,request,exception)

            视图函数出错,会执行它

          *****

          process_response(self,request,response)

            执行顺序,settings中中间件自下而上执行

            响应走的时候,会执行它

            request对象,就是本次请求的request对象,response是响应对象(HttpResponse的对象)

        如果process_request方法返回HttpResponse的对象,请求直接返回,按中间件方法执行顺序往回走

      二.csrf

        xss攻击/csrf或xsrf跨站请求伪造

        使用:中间件不注释,form表单中写{% csrf_token %}

  • 相关阅读:
    python库--pandas--DataFrame
    python库--pandas--Series
    python模块--collections(容器数据类型)
    Linux命令
    pycharm安装
    利用Anaconda进行python爬虫环境的配置-安装scrapy
    反射
    异常处理
    类的相关判断函数
    python random
  • 原文地址:https://www.cnblogs.com/xiaocaiyang/p/10315059.html
Copyright © 2020-2023  润新知