Django

Verwendung von Django-Request- und Response-Objekten

Verwendung von Django-Request- und Response-Objekten
Der Request-Response-Zyklus wird verwendet, um die Daten zwischen Client und Server in allen Arten von Web-APIs zu übertragen. Die Client-Server-Architektur wird im Django-Framework verwendet, um die Webanwendung zu implementieren. Anfrage und Antwort sind die beiden Hauptkomponenten der Client-Server-Anwendung. Ein HTTP-Anfrage -Objekt wird in der Django-Anwendung erstellt, wenn ein Client eine Ressource anfordert. Eine spezielle Ansichtsfunktion wird verwendet, um die Anfrage zu bearbeiten und die Antwort mit dem zu senden HttpResponse Objekt. Die Verwendung verschiedener Attribute und Methoden von HTTP-Anfrage und HttpResponse Klassen des Django-Frameworks werden in diesem Tutorial erklärt.

Django HttpRequest-Klasse:

HTTP-Anfrage -Klasse wird verwendet, um die Client-Anfrage zu bearbeiten, die in der Django.http Modul. Die Attribute dieser Klasse sind unten aufgeführt.

HttpRequest-Attribute:

Attributname Zweck
HTTP-Anfrage.Pfad Der vollständige Pfad der angeforderten Seite wird von diesem Attribut zurückgegeben. Das Schema oder die Domäne ist nicht im zurückgegebenen Wert enthalten.
HTTP-Anfrage.path_info Der Pfadinformationsteil dieses Pfads wird durch dieses Attribut angezeigt.
HTTP-Anfrage.Methode Die für die Anfrage verwendete HTTP-Methode wird durch dieses Attribut angezeigt.
HTTP-Anfrage.planen Das Schema der Anfrage (HTTP oder HTTPs) wird durch dieses Attribut repräsentiert.
HTTP-Anfrage.Körper Der rohe HTTP-Request-Body wird von diesem Attribut als Byte-String zurückgegeben.
HTTP-Anfrage.ERHALTEN Alle HTTP-GET-Parameter werden von diesem Attribut als Dictionary-Objekt zurückgegeben.
HTTP-Anfrage.POST Alle HTTP-POST-Parameter werden von diesem Attribut als Dictionary-Objekt zurückgegeben.
HTTP-Anfrage.KEKSE Alle verfügbaren Cookies werden von diesem Attribut zurückgegeben.
HTTP-Anfrage.DATEIEN Alle hochgeladenen Dateien sind in diesem Attribut enthalten.
HTTP-Anfrage.META Alle verfügbaren HTTP-Header werden durch dieses Attribut angezeigt.
HTTP-Anfrage.Inhaltstyp Der MIME-Typ der Anfrage, die aus dem CONTENT_TYPE-Header geparst wird, wird durch dieses Attribut angezeigt.
HTTP-Anfrage.content_params Ein Dictionary-Objekt, das im CONTENT_TYPE-Header enthalten ist, wird von diesem Attribut zurückgegeben.
HTTP-Anfrage.Codierung Die verwendete aktuelle Kodierung zum Dekodieren der übermittelten Formulardaten wird durch dieses Attribut angezeigt.

HttpRequest-Methoden:

Methode Zweck
HTTP-Anfrage.get_host() Es wird verwendet, um den tatsächlichen Hostnamen der Anfrage zurückzugeben.
HTTP-Anfrage.get_full_path() Es wird verwendet, um den Pfad und die Abfragezeichenfolge zurückzugeben, falls verfügbar.
HTTP-Anfrage.get_port() Es wird verwendet, um die Portnummer der Anfrage zurückzugeben.
HTTP-Anfrage.is_secure() Wenn die Anfrage über HTTPS erfolgt, wird sie als True zurückgegeben, andernfalls als False.
HTTP-Anfrage.is_ajax() Wenn die Anfrage mit XMLHttpRequest erfolgt, wird als True zurückgegeben, andernfalls als False.
HTTP-Anfrage.build_absolute_uri (Lage) Es wird verwendet, um den absoluten URI-Speicherort zurückzugeben.
HTTP-Anfrage.get_signed_cookie (key, default=RAISE_ERROR, salt=“, max_age=None) Es wird verwendet, um den Cookie-Wert für ein signiertes Cookie zurückzugeben oder einen Django auszulösen.Ader.Unterzeichnung.BadSignature-Ausnahme für die ungültige Signatur.

Django HttpAntwort:

HttpResponse -Klasse wird verwendet, um die Client-Antwort zu behandeln, die in der Django.http Modul. Die Attribute dieser Klasse sind unten aufgeführt.

HttpResponse-Attribute:

Attributname Zweck
HttpResponse.Statuscode HTTP-Statuscode der Antwort wird von diesem Attribut zurückgegeben returned
HttpResponse.Zeichensatz Der Zeichensatz, der zum Kodieren der Antwort verwendet wird, wird durch dieses Attribut definiert.
HttpResponse.Streaming Der Standardwert dieses Attributs ist False.
HttpResponse.Inhalt Der Inhalt wird durch dieses Attribut in Byte-String dargestellt.
HttpResponse.grund_phrase Die HTTP-Ursachenphrase der Antwort wird durch dieses Attribut definiert.
HttpResponse.geschlossen Wenn die Antwort geschlossen ist, gibt dieses Attribut True zurück.

HttpResponse-Methoden:

Methode Beschreibung
HttpResponse.__drin__(content=“, content_type=None, status=200, Reason=None, charset=None) Ein HttpResponse-Objekt mit dem angegebenen Seiteninhalt und Inhaltstyp wird durch diese Methode initiiert.
HttpResponse.__getitem__(Header) Der Wert des jeweiligen Header-Namens wird von dieser Methode zurückgegeben.
HttpResponse.__setitem__(Kopfzeile, Wert) Der jeweilige Wert wird durch diese Methode auf den jeweiligen Header-Namen gesetzt.
HttpResponse.__Nachteil__(Header) Der jeweilige Header-Name wird durch diese Methode gelöscht.
HttpResponse.Standardeinstellung(Kopfzeile, Wert) Der Standardheaderwert wird durch diese Methode festgelegt.
HttpResponse.has_header(Header) Die Existenz des jeweiligen Header-Namens wird mit dieser Methode überprüft.
HttpResponse.schreiben(Inhalt) Das dateiähnliche Antwortobjekt wird mit dieser Methode erstellt.
HttpResponse.Wert erhalten() Der Wert von HttpResponse.Inhalt wird mit dieser Methode abgerufen.
HttpResponse.lesbar() Das streamähnliche Objekt der HttpResponse-Klasse wird mit dieser Methode erstellt.
HttpResponse.suchbar() Diese Methode wird verwendet, um das Antwortobjekt suchfähig zu machen.
HttpResponse.sagen() Diese Methode wird verwendet, um eine HttpResponse-Instanz als dateiähnliches Objekt zu erstellen.
HttpResponse.spülen() Diese Methode wird verwendet, um das Antwortobjekt zu leeren.

Voraussetzungen:

Bevor Sie das Skript dieses Tutorials üben, müssen Sie die folgenden Aufgaben ausführen:

EIN. Installieren Sie die Django-Version 3+ auf Ubuntu 20+ (vorzugsweise)
B. Erstellen Sie ein Django-Projekt
C. Führen Sie den Django-Server aus, um zu überprüfen, ob der Server ordnungsgemäß funktioniert oder nicht.

Richten Sie eine Django-App ein:

EIN. Führen Sie den folgenden Befehl aus, um eine Django-App namens zu erstellen reqresapp.

$ python3 verwalten.py startapp reqresapp

B. Führen Sie den folgenden Befehl aus, um einen Benutzer für den Zugriff auf die Django-Datenbank zu erstellen. Wenn Sie den Benutzer zuvor erstellt haben, müssen Sie den Befehl nicht ausführen.

$ python3 verwalten.py erstelltsuperuser

C. Fügen Sie den App-Namen im . hinzu INSTALLED_APP Teil von dem die Einstellungen.py Datei.

INSTALLED_APPS = [

'reqresapp'
]

Ändern Sie die erforderlichen Dateien:

Ändern Sie die Ansichten.py-Datei mit dem folgenden Skript. Das Index() Die Funktion des Skripts liest den Anforderungspfad, die Methode und den Benutzeragenten mithilfe von drei HTTP-Anfrage Attribute. Als nächstes werden diese Werte mit an den Browser gesendet HttpResponse() Methode.

Ansichten.py

# HttResponse importieren
von django.HTTP-Import HttpResponse
# Funktion definieren, um Anfrage und Antwort zu verarbeiten
def-Index (Anfrage):
Pfad = Anfrage.Pfad
Methode = Anfrage.Methode
userAgent = Anfrage.META['HTTP_USER_AGENT']
# Anfrage wird über das HttpResponse-Objekt bearbeitet
return HttpResponse("

Testen des Django-Request-Response-Zyklus


"
"

Pfad anfordern : " + Pfad +
"

Anfragemethode: " + Methode +
"

Benutzeragent : " + Benutzeragent + "

")

Ändern Sie die URLs.py-Datei mit dem folgenden Skript zum Definieren des Pfads zum Aufrufen der Index() Funktion der Ansichten.py Datei.

URLs.py

# Importpfad
von django.URL-Importpfad
# Ansicht importieren
von reqresapp.Ansichten Importindex
# Pfad definieren
URLmuster = [
Pfad(", Index),
]

Führen Sie den folgenden Befehl aus, um den Django-Server zu starten.

$ python3 verwalten.py-Runserver

Führen Sie die folgende URL im Browser aus, um die Ausgabe der App zu überprüfen.

http://localhost:8000

Die folgende Ausgabe zeigt die Werte von drei HttpRequest-Attributen, die von HttpResponse gesendet werden.

Fazit:

Wie die verschiedenen Attribute und Methoden von HttpRequest und HttpResponse in der Django-App verwendet werden können, zeigt dieses Tutorial. Die Django-Benutzer können die Django-Anforderungs- und Antwortobjekte verwenden, nachdem sie dieses Tutorial gelesen haben.

So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...