django-csrf使用和禁用方式
orm表单使用csrf
a.基本应用
form表单中添加
{%csrf_token%}
b.全站禁用
#'django.middleware.csrf.CsrfViewMiddleware',
c.局部禁用
'django.middleware.csrf.CsrfViewMiddleware', fromdjango.views.decorators.csrfimportcsrf_exempt @csrf_exempt defcsrf1(request): ifrequest.method=='GET': returnrender(request,'csrf1.html') else: returnHttpResponse('ok')
d.局部使用
#'django.middleware.csrf.CsrfViewMiddleware', fromdjango.views.decorators.csrfimportcsrf_exempt,csrf_protect @csrf_protect defcsrf1(request): ifrequest.method=='GET': returnrender(request,'csrf1.html') else: returnHttpResponse('ok')
ajax提交数据
Ajax提交数据时候,携带CSRF:
a.放置在data中携带
{%csrf_token%} Ajax提交
b.放在请求头中
{%csrf_token%} Ajax提交
补充知识:在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}}:"Joel\nisaslug"=>"Joel
isaslug" {{value|striptags}}:"Joelaslug"=>"Joelisaslug".
以上这篇django-csrf使用和禁用方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。