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
就像這樣,是不是很簡單

關注我獲取更多內容
注:轉載還請注明出處,謝謝_
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/232309.html
標籤:Python
上一篇:Linux 常用指令
