django中遇到錯誤:Forbidden CSRF cookie not set

2020-12-22 吉祥鳥hu

CSRF cookie not set 提示就是說

未設置CSRF cookie

CSRF 是啥?

表示django全局發送post請求均需要字符串驗證

功能:防止跨站請求偽造的功能

工作原理:客戶端訪問伺服器端,在伺服器端正常返回給客戶端數據的時候,而外返回給客戶端一段字符串,等到客戶端下次訪問伺服器端時,伺服器端會到客戶端查找先前返回的字符串,如果找到則繼續,找不到就拒絕。

訪問流程:客戶端-》URL路由系統 - 》 CSRF -》視圖函數

我這裡要寫的是一個內部使用的api接口,也不大會有 跨站請求偽造

所以這裡提供兩個不是很推薦,但是非常簡單的方式解決這個問題

既然不需要 CSRF 這裡我們就把CSRF檢測關掉即可

解決方法1:

在你創建的項目中,找到settings.py文件文件settings.py 找到 MIDDLEWARE參數注釋掉'django.middleware.csrf.CsrfViewMiddleware',即可就像這樣

解決方法2:

第二種方法和第一種差不多

上面是的注釋掉django.middleware.csrf.CsrfViewMiddleware,這是一個全局的設置

其實我們也可以對單個api 進行特別設置

這裡 我們使用 @csrf_exempt 來進行處理

@csrf_exempt 是用來取消當前函數防跨站請求偽造功能

找 views.py 文件,這是我們處理api規則的導入from django.views.decorators.csrf import csrf_exempt我們在對應的函數上加上@csrf_exempt就像這樣,是不是很簡單

關注我獲取更多內容註:轉載還請註明出處,謝謝^_^

相關焦點

  • 淺談Cookie與Session技術
    三、cookie技術(客戶端技術)(1)什麼是cookiea、cookie是一種客戶端的狀態管理技術b、當瀏覽器向伺服器發送請求的時候,伺服器會將少量的數據以set-cookie消息頭的方式發送給瀏覽器,當瀏覽器再次訪問伺服器時,會將這些數據以cookie消息頭的方式發送給伺服器。
  • 「Django教程」第07天:上傳圖片/顯示圖片
    Django處理文件上傳時,文件最終會位於:attr:request.FILES <django.http.HttpRequest.FILES> 其實用上傳的地方很多,比如說用戶頭像啊,產品圖片,分享的照片啊等等,總的來說還是蠻重要的。本文章主要介紹文件是如何存儲在硬碟和內存中的,以及如何定製默認行為。
  • 基於django的單元測試
    【知道】認識單元測試單元測試:測類、方法、函數,測試最小單位由於django的特殊性,通過接口測單元,代碼邏輯都放在類視圖中單元測試好處消滅低級錯誤【掌握】編寫和運行django的單元測試django環境資料庫編碼資料庫用戶權限(需要建臨時資料庫、刪臨時資料庫)每個應用,自帶tests.py
  • 如何輕鬆了解 Python 必學的 django 框架?
    published"classArticleAdmin(admin.ModelAdmin): list_display = ['title', 'status'] ordering = ['title'] actions = [make_published]admin.site.register(Article, ArticleAdmin)效果如下:處理 action 中的錯誤
  • 漏洞分析 | Laravel Cookie偽造漏洞分析
    漏洞分析Laravel存在cookie加密機制,在官方的laravel項目中,默認使用config/app.php中的key欄位進行加密,默認值是.env的APP_KEY欄位。加密方法是cipher欄位。下面直接看cookie加密、解密的部分。
  • 「Django」RBAC權限管理系統模塊-理解
    本文就我在實際項目過程中所遇到的各種權限方面的問題,看我如何通過擴展Django的權限系統,實現靈活的權限管理。2.1 對象級權限在開發過程中,遇到最多的問題應該就是對象級權限的問題了。 :return: set 表示的用戶所屬的系統組名稱集合。
  • 復盤node項目中遇到的13+常見問題和解決方案
    執行npm install發生node-gyp報錯的問題在項目開發過程中有時候拉取新的node項目代碼後執行npm install, 會報如下錯誤: node-gyp就是在node環境中使用的生成不同平臺不同編譯器的項目文件, 如果你遇到了相同的問題, 我們可以採用如下方案:npm install -g node-gyp或者直接刪除
  • 利用js模擬用戶的cookie信息保存
    思路如下圖:創建一個js文件和index.jsp文件jsp文件內容,都是默認實現,主要是為了引入analytics.js編寫analytics.js文件,函數初始結構添加一個CookieUtil工具獲取cookie
  • 一篇文章帶你了解Django Form組件(入門篇)
    為什麼需要Form組件注:Form組件,只適用於,前後端未分離的項目中,主要用於驗證表單數據,所以,關鍵字是表單!!!比如像嗶哩嗶哩的註冊界面。我點擊註冊,它不僅僅可以知道我的註冊暱稱是否存在,密碼是否小於6位,手機號格式錯誤。還會把錯誤信息一直留在上面,給我提示。
  • 使用Django搭建個人博客
    virtualenv就可以完美解決這樣的問題,虛擬環境(virtualenv)幫我們從系統的 Python 環境中克隆一個全新的 Python 環境出來,這個環境獨立於原來的 Python 環境。我們可以在這個新克隆的環境下安裝 django 2.2.x,並且在這個新環境下運行我們的新項目如何安裝&創建虛擬環境(virtualenv)mac$: pip install virtualenv安裝完成後,我們就開始創建虛擬環境,首先創建
  • Django官方為什麼沒有標準項目結構
    startproject的完整格式為django-admin startproject name [directory],可以在後面追加一個目錄參數:...\> django-admin startproject helloworld hello-world就可以了。根目錄是hello-world,裡面的project是helloworld。
  • Django 項目從零開始:Django 項目創建
    利用Startproject創建DjangoDemo項目在CMD中利用CD將路徑切換到自己項目路徑下再執行下面的命令django-admin startproject DjangoDemo2.測試啟動Django 網站服務在CMD中利用CD進入DjangoDemo文件夾下面,執行下面的命令python manage.py runserver執行此命令默認用127.0.0.1:8000來訪問網站當然也可以用
  • LoadRunner: 腳本回放時的錯誤「HTTP 狀態碼401未授權「
    「HTTP 狀態碼401未授權(當前請求需要驗證用戶授權)」在使用Loadrunner時,我們總會遇到很多常見的錯誤,比如HTTP status code(HTTP 狀態碼)401 、500、403等。
  • Github刪除了不必要的Cookie
    在線代碼存儲庫GitHub宣布已取消其網站上所有不必要的cookie。此舉意味著不再需要顯示cookie橫幅,因此該cookie橫幅已從其所有頁面中刪除。GitHub的執行長納特·弗裡德曼(Nat Friedman)宣布這一舉動表明: 「沒人喜歡cookie橫幅。」 他補充說,GitHub一直在尋找一種解決方案,以平衡他們對cookie標語的厭惡,同時遵守GDPR等有助於保護用戶隱私的法規。「經過簡短的搜索,我們發現了一個:只是不要使用任何非必要的cookie。
  • 英語smart cookie 的用法
    英語中,smart cookie 是一個很有意思的習語,字面意思是「聰明的小甜餅」,引申為「聰明的人」,是不是很有趣?今天我們一起通過幾個例句來學習一下這個習語的用法。例句1:The boss thinks that Tom is a smart cookie. 老闆認為這湯姆很聰明。例句2:If you're a smart cookie, you've got a copy of your list with you.
  • 「原創」Django第六章、模型操作
    sqlite> .tablesauth_group blog_blogarticlesauth_group_permissions django_admin_logauth_permission django_content_type
  • 巧克力雙層Cookie
    之所以叫它cookie是因為蛋糕體是美國的小寶乾媽給的。做過幾次了,在美國的甜品cookie基礎上少了些糖和黃油,味道似乎能調節到我們口味能接受的甜與苦的比例。母親節快樂,親手忙了一下午,做了送給親愛的媽媽!原料:雞蛋、黃油、紅糖、普通麵粉、可可粉、香草精、鹽、小蘇打、夾層黑巧克力、夾層奶油奶酪、夾層淡奶油、表層黑巧克力、表層淡奶油、表層巧克力醬、表層杏仁或腰果碎。
  • 「原創」Django第五章、模型建立與遷移
    畢竟博客中最需要的就是文章嘛,好,閒話少敘,我們開始。/blog/models.py 中寫一個類,命名為BlogArticles。通過這個類我們可以創建一個專門用來保存博客文章的資料庫表,代碼如下:from django.db import modelsfrom django.utils import timezone # 新增from django.contrib.auth.models import