zoukankan      html  css  js  c++  java
  • django中间件的5个方法以及csrf的装饰器用法

    django中间件的5个方法。
    -process_request
    -process_view
    -process_response
    -process_exception
    -process_render_template
     
    1 请求先执行所有中间件的process_request,然后做路由匹配,找到函数不执行。
    2 再执行所有的process_view,在执行视图函数。
    3 再执行process_response
    4 如果程序报错执行process_exception
    5 如果程序有render方法则执行process_render_template
     
     
    django的csrf是如何实现的
     
    在django视图FBV情况下:
    from django.views.decorators.csrf import csrf_exempt,csrf_protect
    
    使用这个装饰器,这个函数就不用遵守这个csrf规则。
    process_view中先判断函数是否有这个装饰器,然后获取用户提交的token,检验是否通过规则。
    process_view方法
        -去检查视图是否被@csrf_exempt(免除csrf认证)
        -去请求体或cookie中获取token
     
    如果将中间件中csrf注释掉,全局不用csrf认证的情况下某个视图需要csrf认证,可以通过csrf_protect装饰器增加csrf规则。
     
    CBV情况下:
    from django.utils.decorators import method_decorator
    

    第一种:

    第二种:

    本质两种方法都是给dispatch加装饰器。

     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Entity Framework 6.1
    Entity Framework Code First学习系列
    oracle 监控执行的sql语句
    修改Oracle XE Listener 占用的1521、8080端口
    Oracle中使用Entity Framework 6.x Code-First
    ASP.Net MVC 数据处理
    权限系统
    订单处理减库存的设计
    表达式树,它与表达式、委托
    监听服务管理(转)
  • 原文地址:https://www.cnblogs.com/ArmoredTitan/p/8782745.html
Copyright © 2011-2022 走看看