栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django-csrf使用和禁用方式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django-csrf使用和禁用方式

orm表单使用csrf

a. 基本应用

form表单中添加

{% csrf_token %}

b. 全站禁用

# 'django.middleware.csrf.CsrfViewMiddleware',

c. 局部禁用

  'django.middleware.csrf.CsrfViewMiddleware',
  
  from django.views.decorators.csrf import csrf_exempt

  @csrf_exempt
  def csrf1(request):

    if request.method == 'GET':
      return render(request,'csrf1.html')
    else:
      return HttpResponse('ok')

d. 局部使用

 # 'django.middleware.csrf.CsrfViewMiddleware',
  
  from django.views.decorators.csrf import csrf_exempt,csrf_protect

  @csrf_protect
  def csrf1(request):

    if request.method == 'GET':
      return render(request,'csrf1.html')
    else:
      return HttpResponse('ok')

ajax提交数据

Ajax提交数据时候,携带CSRF:

a. 放置在data中携带




b. 放在请求头中






补充知识:在django的form表单及ajax提交的数据中添加认证的csrfmiddlewaretoken

1. 对于ajax提交数据,把下面的代码加入到js的头部,可以保证ajax执行时自动提交参数csrfmiddlewaretoken。

$.ajaxSetup({data: {csrfmiddlewaretoken: '{{ csrf_token }}' }});

2. 对于form表单提交数据,在表单内部加入{% csrf_token %}标签,会自动生成一个input标签

得到

或者使用js添加:

$("#csrf_token").replaceWith("{% csrf_token %}");

3. 另外记录一下使用模板过滤器处理form.field的方法

$("#{{ field.name }}").replaceWith('{{ field|linebreaksbr }}');
$(".{{ field.name }}").text('{{ field.errors|striptags }}');
{{ value|linebreaksbr }}: "Joelnis a slug" => "Joel
is a slug" {{ value|striptags }}: "Joel a slug" => "Joel is a slug".

以上这篇django-csrf使用和禁用方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/20620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号