Verwenden Sie Post Request, um Daten an einen Django-Server zu senden
In dieser Erklärung zu Django stellen wir kurz die post
- und get
-Requests vor und wie man den CSRF-Token mit dem post
in Django implementiert.
Verwenden Sie die post
-Anforderung, um Daten an einen Django-Server zu senden
Wir verwenden das HTTP-Protokoll, wenn wir eine Anfrage senden oder eine Antwort erhalten. Das HTTP hat mehrere Methoden wie get
, post
, put
, delete
usw., aber wir konzentrieren uns hier auf die beiden Methoden get
und post
.
Wenn Sie einen Link besuchen, um das Bild zu erhalten, ist das eine get
-Anfrage, weil Sie etwas von einem Server erwarten. Wenn Sie etwas an den Server senden möchten, füllen Sie vielleicht ein Formular aus und übermitteln Ihre Daten; das ist die post
-Methode.
Wenn wir die Daten mit der Suchleiste durchsuchen, funktioniert die Methode get
hinter den Kulissen, und wir können die Daten in der Adressleiste sehen.
Wenn wir Daten versenden, bei denen es sich um Passwörter oder andere geheime Informationen handeln könnte, verwenden wir nicht die get
-Methode. Wir werden die post
-Methode im Backend verwenden.
Der zweite Grund für die Verwendung der post
-Methode ist, wenn wir mehrere Daten des gesamten Formulars mit vielen Feldern senden und wir nicht alles in der Adressleiste anzeigen möchten. Technisch gesehen sollten Sie für die Übermittlung von Daten immer die Methode post
verwenden.
Der erste Schritt besteht darin, zu Ihrem Formular zu gehen und das Methodenattribut als post
festzulegen. Standardmäßig verwendet das Formular die Methode get
.
<form action='add' method='post'>
Enter 1st number<input type="text" name='num1'><br>
Enter 2nd number<input type="text" name='num2'><br>
</form>
Mal sehen, ob die post
-Methode richtig funktioniert. Wir erwarten, dass Sie versuchen, diesen Code mit einem Django-Projekt zu verwenden, also führen Sie den Server aus und gehen Sie zu Ihrem Browser.
Ausgang:
Wenn wir ein Formular absenden, fangen wir einen Fehler ab, und zumindest in der Adressleiste haben wir keine Daten, aber was ist daran falsch? Dieser Fehler besagt, dass die CSRF-Überprüfung fehlgeschlagen ist.
Der Fehler wird ausgelöst, weil im Internet mehrere Hacking-Techniken verfügbar sind. Das CSRF ist ein Tag, das uns hilft, unsere Daten sicher zu senden.
Aber wir werden nicht viel über diesen Angriff sprechen. Sie können nach CSRF suchen.
Django hat eine eingebaute Funktion, um diesen Fehler zu vermeiden. Wenn wir zur Datei settings.py
gehen, finden wir die Liste MIDDLEWARE
, und in dieser Liste können wir sehen, dass es bereits eine bestimmte CSRF-Technik gibt, die beim Senden von Daten verwendet werden kann.
Mit dem Jinja-Code müssen wir dieses CSRF-Token in unserem Formular verwenden.
<form action='add' method='post'>
{% csrf_token %}
Enter 1st number<input type="text" name='num1'><br>
Enter 2nd number<input type="text" name='num2'><br>
</form>
Wir müssen die Datei views.py
öffnen und diesen Democode schreiben.
def add(request):
val1 = int(request.POST["num1"])
val2 = int(request.POST["num2"])
res = val1 + val2
return render(request, "request.html", {"result": res})
In diesem Code summieren wir also nur zwei Ganzzahlen und senden das Ergebnis an request.html
, ohne einen Fehler zu erhalten.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn