Django csrf報錯問題的解決方法
阿新 • • 發佈:2019-01-13
方法一:禁用CSRF驗證機制
在setting.py檔案中刪除csrf中介軟體“django.middleware.csrf.CsrfViewMiddleware”
如果在開發伺服器下直接就解決了,在apache下,需要重啟一下伺服器也可以解決。
但是,顯然去除CSRF驗證機制是一個不夠安全的決定,所以就有了下面的解決方法\r\n
方法二:CSRF驗證設定
如果你是使用的django1.9及以前版本,網上百度獲得的答案將可以很好的解決你的問題。
在return render_to_response(\"template.html\",{\'argv\':argv})後面新增一項
如return render_to_response(\"template.html\",{\'argv\':argv},context_instance=RequestContext(request))
最後再在你的前端頁面上form裡面加入{% csrf_token %}就可以解決問題了。
如果你使用django1.10之後的版本,方式就不太一樣了。
首先,你要在views.py檔案中匯入from django.shortcuts import render
然後在views.py中函式返回頁面時不再使用render_to_response,改用render。因為在1.10版本中不再支援render_to_response來設定csrf驗證
render函式的使用方法:render(request, \"template.html\", {\'test\':test})
最後也再在你的前端頁面上form裡面加入{% csrf_token %}就可以解決問題了。
PS:該解決方法由博主翻閱那坑爹的無中文的官方文件總結得出。