一、settings.py沒有註釋到csrf。當post請求的方式會報錯。django
接下來就解決問題!cookie
1. django中間件 最多5個 - process_request 請求 - process_view - process_response 相應 - process_exception 異常 - process_render_template 2. 中間件執行流程: process_request>路由匹配 找到函數不執行>process_view >視圖函數>process_response 3. 中間件的做用 - 權限 - 用戶登陸驗證 4. django的csrf實現功能: csrf在process_view方法 - 檢查視圖是否被@csrf_exempt(免除csrf認證) - 去請求體或cookie中獲取token
1.FBV:狀況一:csrf打開,個別不須要csrf認證。在方法的上方加@csrf_exempt 。這是全局使用csrf。函數
2.FBV:狀況二:csrf註釋,個別須要csrf認證。加@csrf_protect ,這是局部使用csrf。post
1.CBV:狀況一:csrf打開,個別不須要csrf認證。@method_decorator 全局使用csrf。spa
運行結果:加在單獨方法上是不行的,仍是會報錯。 3d
方式一:code
方式二:加載class類上,指定方法名。裝飾的位置不同。csrf
總結: - 本質,基於反射來實現 - 流程:路由,view,dispatch(反射) - 取消csrf認證(裝飾器要加到dispatch方法上且method_decorator裝飾) 擴展: - csrf - 基於中間件的process_view方法 - 裝飾器給單獨函數進行設置(認證或無需認證)