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加装饰器。

     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    django全文搜索学习心得(一)haystack 篇
    django request get_full_path 中文问题
    django全文搜索学习心得(五) whoosh 精简版
    django全文搜索学习心得(二)solr 篇
    django全文搜索学习心得(四)sphinx篇
    模拟队列
    差分
    模拟栈
    区间合并
    离散化
  • 原文地址:https://www.cnblogs.com/ArmoredTitan/p/8782745.html
Copyright © 2011-2022 走看看