Verwenden Sie Post Request, um Daten an einen Django-Server zu senden

Salman Mehmood 15 Februar 2024
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:

Django-Post-Anfrage – Ausgabe

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.

Django Post Request - MIDDLEWARE

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.

Salman Mehmood avatar Salman Mehmood avatar

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