国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

django-csrf使用和禁用方式

瀏覽:5日期:2024-10-20 18:11:48

orm表單使用csrf

a. 基本應(yīng)用

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提交數(shù)據(jù)

Ajax提交數(shù)據(jù)時(shí)候,攜帶CSRF:

a. 放置在data中攜帶

<form method='POST' action='/csrf1.html'> {% csrf_token %} <input type='text' name='user' /> <input type='submit' value='提交'/> <a onclick='submitForm();'>Ajax提交</a></form><script src='https://rkxy.com.cn/static/jquery-1.12.4.js'></script><script> function submitForm(){ var csrf = $(’input[name='csrfmiddlewaretoken']’).val(); var user = $(’#user’).val(); $.ajax({ url: ’/csrf1.html’, type: ’POST’, data: { 'user':user,’csrfmiddlewaretoken’: csrf}, success:function(arg){console.log(arg); } }) }</script>

b. 放在請(qǐng)求頭中

<form method='POST' action='/csrf1.html'> {% csrf_token %} <input type='text' name='user' /> <input type='submit' value='提交'/> <a onclick='submitForm();'>Ajax提交</a></form><script src='https://rkxy.com.cn/static/jquery-1.12.4.js'></script><script src='https://rkxy.com.cn/static/jquery.cookie.js'></script><script> function submitForm(){ var token = $.cookie(’csrftoken’); var user = $(’#user’).val(); $.ajax({ url: ’/csrf1.html’, type: ’POST’, headers:{’X-CSRFToken’: token}, data: { 'user':user}, success:function(arg){console.log(arg); } }) }</script>

補(bǔ)充知識(shí):在django的form表單及ajax提交的數(shù)據(jù)中添加認(rèn)證的csrfmiddlewaretoken

1. 對(duì)于ajax提交數(shù)據(jù),把下面的代碼加入到j(luò)s的頭部,可以保證ajax執(zhí)行時(shí)自動(dòng)提交參數(shù)csrfmiddlewaretoken。

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

2. 對(duì)于form表單提交數(shù)據(jù),在表單內(nèi)部加入{% csrf_token %}標(biāo)簽,會(huì)自動(dòng)生成一個(gè)input標(biāo)簽

<form>{% csrf_token %}</form>

得到

<form><input name='csrfmiddlewaretoken' value='...' type='hidden'></form>

或者使用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<br>is a slug'{{ value|striptags }}: '<b>Joel</b> <button>is</button> a <span>slug</span>' => 'Joel is a slug'.

以上這篇django-csrf使用和禁用方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 尚义县| 大方县| 中江县| 滦南县| 兰坪| 林周县| 颍上县| 运城市| 丹江口市| 四川省| 容城县| 兰西县| 澄迈县| 剑河县| 宜章县| 日土县| 武穴市| 彭山县| 滨州市| 久治县| 饶平县| 咸宁市| 宽甸| 浏阳市| 朝阳区| 汉寿县| 富川| 含山县| 济源市| 衡南县| 伊通| 彭阳县| 邮箱| 铁岭市| 肃北| 乌鲁木齐市| 丹寨县| 濮阳市| 林甸县| 湖州市| 壤塘县|