2016-04-03 5 views
0

Dies ist der Code views.pyVerboten 403 CSRF Fehler bei der Verwendung von request.post.get() Methode in views.py von HTML-Seite

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)` 

Dies ist der HTML-Code

<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> 

Ich finde die Lösung für die Anfrage mit Post-Daten von der einfachen HTML-Seite Ich kann den Code für GET-Anforderungen arbeiten. Ich muss diesen Server von Android-App verbinden

Antwort

0

Es ist, weil Sie nicht die csrf_token mit Ihrer Post Anfrage senden. Aus Sicherheitsgründen überprüft django csrf_tokens in allen POST-Anfragen.

Sie können csrf_token in Ihrer Vorlage mit csrf_token TemplateTag, wie folgt hinzufügen:

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

lesen: How to use CSRF token in Django

+0

Nun, ich bin mit einfachen HTML-Seite .... nicht Vorlage und den Aufruf der URL direkt von der Seite –

+0

Wenn Sie eine Ansicht haben, die CSRF nicht prüft, verwenden Sie 'csrf_except' Decorator mit Ihrer Ansicht. Andernfalls müssen Sie JS verwenden, um csrf cookie zu erfassen und dann seinen Wert in das Formular einzufügen. – v1k45