91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確的使用django-csrf

發布時間:2021-03-20 15:54:32 來源:億速云 閱讀:202 作者:Leah 欄目:開發技術

如何正確的使用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中攜帶

<form method="POST" action="/csrf1.html">
  {% csrf_token %}
  <input id="user" type="text" name="user" />
  <input type="submit" value="提交"/>
  <a onclick="submitForm();">Ajax提交</a>
</form>
<script src="/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. 放在請求頭中

<form method="POST" action="/csrf1.html">
  {% csrf_token %}
  <input id="user" type="text" name="user" />
  <input type="submit" value="提交"/>
  <a onclick="submitForm();">Ajax提交</a>
</form>
<script src="/static/jquery-1.12.4.js"></script>
<script src="/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>

補充知識:在django的form表單及ajax提交的數據中添加認證的csrfmiddlewaretoken

1. 對于ajax提交數據,把下面的代碼加入到js的頭部,可以保證ajax執行時自動提交參數csrfmiddlewaretoken。

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

2. 對于form表單提交數據,在表單內部加入{% csrf_token %}標簽,會自動生成一個input標簽

<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 }}: "Joel\nis 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的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丰县| 明星| 静宁县| 清徐县| 岑溪市| 连平县| 津市市| 瓦房店市| 定结县| 邵阳县| 乌拉特前旗| 惠州市| 阿拉善左旗| 桂平市| 新平| 白城市| 宝山区| 荥经县| 额尔古纳市| 泌阳县| 夏邑县| 玉环县| 金湖县| 南乐县| 颍上县| 滕州市| 上蔡县| 瓦房店市| 井陉县| 会理县| 大悟县| 泰和县| 津南区| 略阳县| 舒城县| 托里县| 砀山县| 尚义县| 崇阳县| 甘谷县| 沁水县|