python - CSRF 验证失败。请求中止。(Python 请求模块)
问题描述
我的views.py(Django项目)中有这个功能
def boardsJson(request):
user=request.GET.get('user')
password=request.GET.get('password')
:
:
Bla Bla Bla
:
:
return HttpResponse("Login Success")
我正在尝试通过此请求模块登录。
import requests
URL = "http://35.196.206.72:8000/boardsJson/"
PARAMS = {
'user':'1234567890',
'password':'kak',
}
r = requests.get(url = URL, params = PARAMS)
print(r.text)
在我使用 GET 方法登录之前,一切都很好。但是,如果我使用 POST(我只是在每个地方都用“POST”替换了“GET”)方法,那么我会收到类似下面的消息。
<p>CSRF verification failed. Request aborted.</p>
<p>You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.</p>
<p>If you have configured your browser to disable cookies, please re-enable them, at least for this site, or for âsame-originâ requests.</p>
所以请帮我解决它。谢谢你。
解决方案
您需要在帖子中包含 CSRF 令牌或将 CSRF Exempt 装饰器添加到视图中(如果您要绕过它)。
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def boardsJson(request):
user=request.GET.get('user')
password=request.GET.get('password')
:
:
Bla Bla Bla
:
:
return HttpResponse("Login Success")
请参阅https://docs.djangoproject.com/en/3.0/ref/csrf/#unprotected-view-needs-the-csrf-token
推荐阅读
- django - 将新用户添加到刚刚创建的对象
- firebase - 从 Firebase 云函数获取响应
- javascript - 更改 package.json 中的代理不起作用
- php - td Rowspan 之后的 html,下一列数据转到下一行
- reactjs - 在 React JS 中调用 javascript 控制台 API
- vba - vba,soap webservice不完整的响应
- python - 找不到满足 pip 要求的版本 - 在 python 2.7 中的代理后面安装 pip
- ios - SwiftDate 字符串解析返回的结果减少了 1 天
- python - 试图学习如何按位或运算符 | 适用于 python,我想知道为什么 1 | 2 == 3?
- oracle - 使用 EOF 传递 weblogic 密码