在 html 页面的 views.py 中使用 request.post.get() 方法时出现禁止的 403 CSRF 错误
Forbidden 403 CSRF error when using request.post.get() method in views.py from html page
这是views.py代码
from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpRequest
from django.db import models
from datetime import datetime
# Create your views here.
def postdata(request):
if request.method == "POST":
data=request.POST.get('data')
return HttpResponse(data)`
这是html代码
<form action="http://127.0.0.1:8000/minor/postdata/" method="POST">
data:<br>
<input type="text" name="data"><br>
<input type="submit" value="Submit">
</form>
我无法从简单的 html 页面找到 post 数据请求的解决方案
我可以获得适用于 GET 请求的代码。
我需要从 android app
连接这个服务器
这是因为您没有在 post 请求中发送 csrf_token
。出于安全原因,django 检查所有 POST 请求中的 csrf_tokens。
您可以使用 csrf_token 模板标签在模板中添加 csrf_token,如下所示:
<form action="http://127.0.0.1:8000/minor/postdata/" method="POST">
{% csrf_token %}
这是views.py代码
from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpRequest
from django.db import models
from datetime import datetime
# Create your views here.
def postdata(request):
if request.method == "POST":
data=request.POST.get('data')
return HttpResponse(data)`
这是html代码
<form action="http://127.0.0.1:8000/minor/postdata/" method="POST">
data:<br>
<input type="text" name="data"><br>
<input type="submit" value="Submit">
</form>
我无法从简单的 html 页面找到 post 数据请求的解决方案 我可以获得适用于 GET 请求的代码。 我需要从 android app
连接这个服务器这是因为您没有在 post 请求中发送 csrf_token
。出于安全原因,django 检查所有 POST 请求中的 csrf_tokens。
您可以使用 csrf_token 模板标签在模板中添加 csrf_token,如下所示:
<form action="http://127.0.0.1:8000/minor/postdata/" method="POST">
{% csrf_token %}