从html页面的views.py中使用request.post.get()方法时出现禁止403 CSRF错误

时间:2016-04-03 09:29:00

标签: python html django post csrf

这是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页面找到带有发布数据的请求解决方案 我可以让代码适用于GET请求。 我需要从Android应用程序连接此服务器

1 个答案:

答案 0 :(得分:0)

这是因为您没有向csrf_token发送您的帖子请求。出于安全原因,django会在所有POST请求中检查csrf_tokens。

您可以使用csrf_token templatetag在模板中添加csrf_token,如下所示:

<form action="http://127.0.0.1:8000/minor/postdata/" method="POST">
{% csrf_token %}

阅读:How to use CSRF token in Django