最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于django 1.10 CSRF驗證失敗的解決方法

 更新時間:2019年08月31日 09:08:50   作者:Rocky_  
今天小編就為大家分享一篇關(guān)于django 1.10 CSRF驗證失敗的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近工作閑,沒事自學(xué)django,感覺這個最煩的就是各版本提供的api函數(shù)經(jīng)常有變化,不是取消了就是參數(shù)沒有了,網(wǎng)上搜到的帖子也沒說明用的是什么版本的django,所以經(jīng)常出現(xiàn)搬運過來的代碼解決不了問題的情況,不過基本上遇到的坑不多,最坑的就是在提交post表單時弄了兩天的CSRF驗證失敗問題,特此記錄一下,我用的是django 1.10.3:

如果你不想使用這個功能,直接找到settings.py中的'django.middleware.csrf.CsrfViewMiddleware',這一行,直接給丫注釋掉,就不用啟動CSRF檢查了,一了白了,當(dāng)然了如果你是練手的時候這么干還行,正式一點的項目還是啟用最好,省的被人搞跨站攻擊,到時候加班倒霉挨罵的還是你。

關(guān)于跨站攻擊簡單說一下我的理解,就是比如說你登錄了一個交友網(wǎng)站后,才可以修改提交自己的基本資料,此時登錄后cooikes就被記錄到本機了,你的基友嫉妒你,他做了一個假頁面A發(fā)給你,引誘你點擊或填寫提交后,直接把數(shù)據(jù)提交給了真正的交友網(wǎng)站,由于你之前已經(jīng)登錄并且cooikes被記錄下來了,所以這次提交雖然是從假頁面A提交過去的,但是交友網(wǎng)站校驗是通過的,所以就可以任意修改提交數(shù)據(jù),比如說把你的年齡惡意修改成60的一個老頭兒,導(dǎo)致你長期吃狗糧。。。

繼續(xù)說正事,那么如果想開啟怎么辦呢,首先把剛才注釋的'django.middleware.csrf.CsrfViewMiddleware'還是放開吧,然后繼續(xù)如下步驟:

1、首先弄個表單提交頁面search_form_post.html(該頁面模擬搜索并顯示在數(shù)據(jù)庫里保存的汽車列表),注意在from表單內(nèi)增加{% csrf_token %}標(biāo)簽,代碼如下:

 <!DOCTYPE html>
 <html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>搜索汽車</title>
 </head>
 <body>
  <form action="" method="post">
   {% csrf_token %}
   <input type="text" name="q"><input type="checkbox" name="chk_contains">是否模糊搜索
   <input type="submit" value="Search">
  </form>
 {{ message }}
 <p>
 {% for car in car_list %}
  <li>
   {{ car.brand }}
  </li>
 {% endfor %}
 </body>
 </html>

2、在你的apps模塊的views.py增加一個處理搜索提交的方法,代碼如下:

 from django.shortcuts import render
 
 
 def search_form_post(request):
  car_list = None
 
  if 'q' in request.POST:
   message = '你搜索的是: %r' % request.POST['q']
   if 'chk_contains' in request.POST:
    car_list = Car.objects.filter(brand__contains=request.POST['q'])
   else:
    car_list = Car.objects.filter(brand=request.POST['q'])
  else:
   message = '請輸入要搜索的內(nèi)容并點擊搜索'
 
  return render(request, "search_form_post.html", {'message': message, 'car_list': car_list})

注意上邊關(guān)鍵的地方來了,django 1.10直接使用render方法就可以了,{% csrf_token %}標(biāo)簽才會被自動替換為下圖一樣的隱藏域,我就是因為用的get_template("search_form_post.html").render(context),所以老是替換的值為空,因為當(dāng)你使用這種方式加載模板的時候,不會自動替換{% csrf_token %}標(biāo)簽,當(dāng)然也有解決辦法,就是使用context.update(csrf(request)),來自己替換,不過挺麻煩的,還是用render方法自動替換方便

然后第三個參數(shù),一定要使用{}花括號的字典數(shù)據(jù)類型,不要使用什么元祖、列表之類的數(shù)據(jù)類型了,這樣模板內(nèi)的變量才能被正確替換顯示出來,我被坑主要就是{% csrf_token %}標(biāo)簽不被自動替換+模板內(nèi)變量不顯示,剩下的就是去urls.py里配置url去試試吧

以上這篇關(guān)于django 1.10 CSRF驗證失敗的解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中websockets與主線程傳遞參數(shù)的實現(xiàn)

    python中websockets與主線程傳遞參數(shù)的實現(xiàn)

    本文主要介紹了python中websockets與主線程傳遞參數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Django框架使用富文本編輯器Uedit的方法分析

    Django框架使用富文本編輯器Uedit的方法分析

    這篇文章主要介紹了Django框架使用富文本編輯器Uedit的方法,結(jié)合實例形式分析了Django框架中使用Uedit的安裝、配置方法及Uedit相關(guān)插件制作方法,需要的朋友可以參考下
    2018-07-07
  • PyQt5爬取12306車票信息程序的實現(xiàn)

    PyQt5爬取12306車票信息程序的實現(xiàn)

    12306是學(xué)習(xí)爬蟲的比較好的一個練手網(wǎng)站。本文主要實現(xiàn)了PyQt5爬取12306車票信息程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹

    終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹

    這篇文章主要介紹了終于搞懂了Keras中multiloss的對應(yīng)關(guān)系介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python加速器numba使用詳解

    python加速器numba使用詳解

    本文主要介紹了python加速器numba使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 詳解python使用turtle庫來畫一朵花

    詳解python使用turtle庫來畫一朵花

    這篇文章主要介紹了python使用turtle庫來畫一朵花,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 解決Django加載靜態(tài)資源失敗的問題

    解決Django加載靜態(tài)資源失敗的問題

    今天小編就為大家分享一篇解決Django加載靜態(tài)資源失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Pandas含中文表格對齊輸出的幾種情況

    Pandas含中文表格對齊輸出的幾種情況

    今天使用python計算數(shù)據(jù)相關(guān)性,但是發(fā)現(xiàn)計算出的表格中間好多省略號,而且也不對齊,?這也太難看了,下面這篇文章主要給大家介紹了關(guān)于Pandas含中文表格對齊輸出的幾種情況,需要的朋友可以參考下
    2023-04-04
  • Python進階教程之創(chuàng)建本地PyPI倉庫

    Python進階教程之創(chuàng)建本地PyPI倉庫

    pypi是一個python包的倉庫,里面有很多別人寫好的python庫,你可以通過easy_install或者pip進行安裝,下面這篇文章主要給大家介紹了關(guān)于Python進階教程之創(chuàng)建本地PyPI倉庫的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Django3.0 異步通信初體驗(小結(jié))

    Django3.0 異步通信初體驗(小結(jié))

    這篇文章主要介紹了Django3.0 異步通信初體驗,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

丰原市| 荃湾区| 东乌珠穆沁旗| 华阴市| 上蔡县| 观塘区| 天津市| 安平县| 河津市| 沙湾县| 黄石市| 福泉市| 东明县| 普格县| 乐清市| 延庆县| 黔西县| 绩溪县| 肃宁县| 邻水| 将乐县| 肥乡县| 汨罗市| 阿拉善左旗| 沽源县| 南开区| 石首市| 张掖市| 潞西市| 五莲县| 南通市| 盐源县| 太仓市| 成武县| 景洪市| 安图县| 桂林市| 西和县| 成安县| 容城县| 芮城县|