Django

Gebruik van Django-verzoek- en antwoordobjecten

Gebruik van Django-verzoek- en antwoordobjecten
De Request-response-cyclus wordt gebruikt om de gegevens over te dragen tussen de client en de server in alle soorten web-API's. De client-server-architectuur wordt gebruikt in het Django-framework om de webtoepassing te implementeren. Het verzoek en het antwoord zijn de twee hoofdcomponenten van de client-servertoepassing. Een HttpRequest object wordt gemaakt in de Django-toepassing wanneer een client om een ​​​​bron vraagt. Een bepaalde weergavefunctie wordt gebruikt om het verzoek af te handelen en het antwoord te verzenden met behulp van de HttpReactie voorwerp. Het gebruik van verschillende attributen en methoden van HttpRequest en HttpReactie klassen van het Django-framework worden in deze tutorial uitgelegd.

Django HttpRequest-klasse:

HttpRequest class wordt gebruikt om het clientverzoek af te handelen dat is gedefinieerd in de django.http module. De attributen van deze klasse worden hieronder vermeld:.

HttpRequest-kenmerken:

attribuut naam Doel
HttpRequest.pad Het volledige pad van de opgevraagde pagina wordt geretourneerd door dit kenmerk. Het schema of domein is niet opgenomen in de geretourneerde waarde.
HttpRequest.path_info Het padinformatiegedeelte van dit pad wordt weergegeven door dit attribuut.
HttpRequest.methode De HTTP-methode die voor het verzoek wordt gebruikt, wordt weergegeven door dit kenmerk:.
HttpRequest.schema Het schema van de aanvraag (HTTP of HTTPs) wordt weergegeven door dit attribuut.
HttpRequest.lichaam Het onbewerkte HTTP-verzoeklichaam wordt geretourneerd als een bytetekenreeks door dit kenmerk.
HttpRequest.KRIJGEN Alle HTTP GET-parameters worden door dit kenmerk geretourneerd als een woordenboekobject.
HttpRequest.POST Alle HTTP POST-parameters worden door dit kenmerk geretourneerd als een woordenboekobject.
HttpRequest.COOKIES Alle beschikbare cookies worden geretourneerd door dit kenmerk.
HttpRequest.BESTANDEN Alle geüploade bestanden vallen onder dit kenmerk.
HttpRequest.META Alle beschikbare HTTP-headers worden weergegeven met dit kenmerk.
HttpRequest.content_type Het MIME-type van het verzoek dat is geparseerd uit de CONTENT_TYPE-header wordt weergegeven door dit kenmerk.
HttpRequest.content_params Een woordenboekobject dat is opgenomen in de CONTENT_TYPE-header wordt geretourneerd door dit kenmerk.
HttpRequest.codering De gebruikte huidige codering om de ingediende formuliergegevens te decoderen, wordt weergegeven door dit kenmerk:.

HttpRequest-methoden:

Methode Doel
HttpRequest.get_host() Het wordt gebruikt om de werkelijke hostnaam van het verzoek terug te geven.
HttpRequest.get_full_path() Het wordt gebruikt om het pad en de queryreeks te retourneren, indien beschikbaar.
HttpRequest.get_port() Het wordt gebruikt om het poortnummer van het verzoek te retourneren.
HttpRequest.is_secure() Als het verzoek wordt gedaan met behulp van HTTPS, wordt het geretourneerd als True, anders False.
HttpRequest.is_ajax() Als het verzoek wordt gedaan met behulp van XMLHttpRequest, wordt het geretourneerd als True, anders False.
HttpRequest.build_absolute_uri (plaats) Het wordt gebruikt om de absolute URI-locatie terug te geven.
HttpRequest.get_signed_cookie (sleutel, standaard=RAISE_ERROR, salt=”, max_age=Geen) Het wordt gebruikt om de cookiewaarde voor een ondertekende cookie terug te geven of om een ​​django te genereren.kern.signeren.BadSignature-uitzondering voor de ongeldige handtekening.

Django HttpReactie:

HttpReactie class wordt gebruikt om de clientreactie af te handelen die is gedefinieerd in de django.http module. De attributen van deze klasse worden hieronder vermeld:.

HttpResponse-kenmerken:

attribuut naam Doel
HttpReactie.status code HTTP-statuscode van het antwoord wordt geretourneerd door dit kenmerk
HttpReactie.tekenset De char-set die wordt gebruikt om het antwoord te coderen wordt gedefinieerd door dit attribuut.
HttpReactie.streamen De standaardwaarde van dit kenmerk is False.
HttpReactie.inhoud De inhoud wordt door dit attribuut in bytetekenreeks weergegeven:.
HttpReactie.reden_zin De HTTP-redenzin van het antwoord wordt gedefinieerd door dit kenmerk.
HttpReactie.Gesloten Wanneer het antwoord is gesloten, retourneert dit kenmerk True.

HttpResponse-methoden:

Methode Omschrijving
HttpReactie.__in het__(content=”, content_type=Geen, status=200, reden=Geen, charset=Geen) Een HttpResponse-object met de opgegeven pagina-inhoud en inhoudstype wordt door deze methode geïnitieerd.
HttpReactie.__getitem__(kop) De waarde van de specifieke headernaam wordt geretourneerd door deze methode.
HttpReactie.__setitem__(kop, waarde) De specifieke waarde wordt met deze methode ingesteld op de specifieke headernaam name.
HttpReactie.__delitem__(kop) De specifieke headernaam wordt op deze manier verwijderd.
HttpReactie.standaard instellen(kop, waarde) De standaard header-waarde wordt met deze methode ingesteld:.
HttpReactie.has_header(kop) Het bestaan ​​van de specifieke headernaam wordt met deze methode gecontroleerd.
HttpReactie.schrijven(inhoud) Het bestandsachtige responsobject wordt met deze methode gemaakt.
HttpReactie.haalwaarde() De waarde van HttpResponse.inhoud wordt op deze manier opgehaald.
HttpReactie.leesbaar() Het stream-achtige object van de HttpResponse-klasse wordt met deze methode gemaakt:.
HttpReactie.zoekbaar() Deze methode wordt gebruikt om het responsobject zoekbaar te maken.
HttpReactie.vertellen() Deze methode wordt gebruikt om een ​​HttpResponse-instantie te maken als een bestandsachtig object.
HttpReactie.spoelen() Deze methode wordt gebruikt om het antwoordobject te wissen.

Vereisten:

Voordat u het script van deze zelfstudie oefent, moet u de volgende taken uitvoeren:

EEN. Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
B. Een Django-project maken
C. Voer de Django-server uit om te controleren of de server goed werkt of niet.

Stel een Django-app in:

EEN. Voer de volgende opdracht uit om een ​​Django-app met de naam te maken reqresapp.

$ python3 beheren.py startapp vereist app

B. Voer de volgende opdracht uit om een ​​gebruiker aan te maken voor toegang tot de Django-database:. Als je de gebruiker eerder hebt gemaakt, hoef je de opdracht niet uit te voeren.

$ python3 beheren.py createsuperuser

C. Voeg de app-naam toe aan de INSTALLED_APP deel van de instellingen.py bestand.

INSTALLED_APPS = [

'reqresapp'
]

Wijzig de benodigde bestanden:

Wijzig de weergaven.py-bestand met het volgende script. De inhoudsopgave() functie van het script zal het verzoekpad, de methode en de user-agent lezen met behulp van drie HttpRequest attributen. Vervolgens worden deze waarden naar de browser verzonden met behulp van HttpResponse() methode.

keer bekeken.py

# Importeer HttResponse
van django.http import HttpResponse
# Definieer functie om verzoek en reactie af te handelen
def index(verzoek):
pad = verzoek.pad
methode = verzoek.methode
userAgent = aanvraag.META['HTTP_USER_AGENT']
# verzoek wordt afgehandeld met behulp van HttpResponse-object
return HttpResponse("

Django-verzoekreactiecyclus testen


"
"

Verzoek pad : " + pad +
"

Verzoekmethode: " + methode +
"

Gebruikersagent: " + userAgent + "

")

Pas de URL's aan.py-bestand met het volgende script voor het definiëren van het pad om de . aan te roepen inhoudsopgave() functie van de keer bekeken.py het dossier.

URL's.py

# Importpad
van django.URL-importpad
# Weergave importeren
van reqresapp.weergaven importindex
# Definieer pad
urlpatronen = [
pad(", index),
]

Voer de volgende opdracht uit om de Django-server te starten:.

$ python3 beheren.py runserver

Voer de volgende URL uit vanuit de browser om de uitvoer van de app te controleren.

http://localhost:8000

De volgende uitvoer toont de waarden van drie HttpRequest-kenmerken die zijn verzonden door HttpResponse.

Conclusie:

Hoe de verschillende attributen en methodes van HttpRequest en HttpResponse gebruikt kunnen worden in de Django app wordt getoond in deze tutorial. De Django-gebruikers kunnen de Django-verzoek- en responsobjecten gebruiken na het lezen van deze tutorial.

Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...
Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...