Django

Brug af Django Request and Response Objects

Brug af Django Request and Response Objects
Forespørgselscyklus bruges til at overføre data mellem klienten og serveren i alle typer web-API'er. Klient-server-arkitekturen bruges i Django-rammen til at implementere webapplikationen. Anmodningen og svaret er de to hovedkomponenter i klientserver-applikationen. En HttpForespørgsel objekt oprettes i Django-applikationen, når en klient anmoder om en ressource. En bestemt visningsfunktion bruges til at håndtere anmodningen og sende svaret ved hjælp af HttpResponse objekt. Anvendelsen af ​​forskellige attributter og metoder til HttpForespørgsel og HttpResponse klasser i Django-rammen vil blive forklaret i denne vejledning.

Django HttpForespørgselsklasse:

HttpForespørgsel klasse bruges til at håndtere den klientanmodning, der er defineret i django.http modul. Attributterne for denne klasse er nævnt nedenfor.

HttpRequest Attributter:

Attributnavn Formål
HttpForespørgsel.sti Den fulde sti til den anmodede side returneres af denne attribut. Ordningen eller domænet er ikke inkluderet i den returnerede værdi.
HttpForespørgsel.sti_info Stien info del af denne sti vises af denne attribut.
HttpForespørgsel.metode HTTP-metoden, der anvendes til anmodningen, vises af denne attribut.
HttpForespørgsel.ordning Ordningen med anmodningen (HTTP eller HTTP'er) er repræsenteret af denne attribut.
HttpForespørgsel.legeme Det rå HTTP-anmodningselement returneres som en bytestreng af denne attribut.
HttpForespørgsel.FÅ Alle HTTP GET-parametre returneres af denne attribut som et ordbogobjekt.
HttpForespørgsel.STOLPE Alle HTTP POST-parametre returneres af denne attribut som et ordbogobjekt.
HttpForespørgsel.COOKIES Alle tilgængelige cookies returneres af denne attribut.
HttpForespørgsel.FILER Alle uploadede filer er indeholdt i denne attribut.
HttpForespørgsel.META Alle tilgængelige HTTP-headere vises med denne attribut.
HttpForespørgsel.indholdstype MIME-typen for anmodningen, der parses fra CONTENT_TYPE-overskriften, vises af denne attribut.
HttpForespørgsel.content_params Et ordbogobjekt, der er inkluderet i CONTENT_TYPE-overskriften, returneres af denne attribut.
HttpForespørgsel.indkodning Den anvendte aktuelle kodning til at afkode de indsendte formulardata vises af denne attribut.

HttpRequest Metoder:

Metode Formål
HttpForespørgsel.get_host () Det bruges til at returnere anmodningens faktiske værtsnavn.
HttpForespørgsel.get_full_path () Det bruges til at returnere stien og forespørgselsstrengen, hvis den er tilgængelig.
HttpForespørgsel.get_port () Det bruges til at returnere portnummeret på anmodningen.
HttpForespørgsel.er_sikker () Hvis anmodningen foretages ved hjælp af HTTPS, returneres den som sand ellers falsk.
HttpForespørgsel.is_ajax () Hvis anmodningen foretages ved hjælp af XMLHttpRequest, returneres den som sandt ellers falsk.
HttpForespørgsel.build_absolute_uri (Beliggenhed) Det bruges til at returnere den absolutte URI-placering.
HttpForespørgsel.get_signed_cookie (nøgle, standard = RAISE_ERROR, salt = ”, max_age = Ingen) Det bruges til at returnere cookieværdien for en signeret cookie eller hæver en django.kerne.underskrift.BadSignature-undtagelse for den ugyldige signatur.

Django Http Svar:

HttpResponse klasse bruges til at håndtere klientsvar, der er defineret i django.http modul. Attributterne for denne klasse er nævnt nedenfor.

HttpResponse attributter:

Attributnavn Formål
HttpResponse.status_code HTTP-statuskoden for svaret returneres af denne attribut
HttpResponse.tegnsæt Char-sæt, der bruges til at kode svaret, defineres af denne attribut.
HttpResponse.streaming Standardværdien af ​​denne attribut er Falsk.
HttpResponse.indhold Indholdet er repræsenteret i byte-streng ved denne attribut.
HttpResponse.reason_phrase HTTP-årsagssætningen for svaret er defineret af denne attribut.
HttpResponse.lukket Når svaret lukkes, returnerer denne attribut Sand.

HttpResponse Metoder:

Metode Beskrivelse
HttpResponse.__i det__(content = ”, content_type = None, status = 200, reason = None, charset = None) Et HttpResponse-objekt med det givne sideindhold og indholdstype initieres ved denne metode.
HttpResponse.__getitem__(header) Værdien af ​​det bestemte headernavn returneres ved denne metode.
HttpResponse.__setitem__(overskrift, værdi) Den særlige værdi indstilles til det bestemte headernavn ved denne metode.
HttpResponse.__delitem__(header) Det bestemte headernavn slettes ved denne metode.
HttpResponse.sæt standard(overskrift, værdi) Standard headerværdien indstilles ved denne metode.
HttpResponse.has_header(header) Eksistensen af ​​det bestemte headernavn kontrolleres ved denne metode.
HttpResponse.skrive(indhold) Det fillignende svarobjekt oprettes ved denne metode.
HttpResponse.getvalue () Værdien af ​​HttpResponse.indhold hentes ved denne metode.
HttpResponse.læselig() Det strømlignende objekt i HttpResponse-klassen oprettes ved denne metode.
HttpResponse.søgbar () Denne metode bruges til at gøre responsobjektet søgbart.
HttpResponse.fortælle() Denne metode bruges til at oprette en HttpResponse-forekomst som et fillignende objekt.
HttpResponse.Flush() Denne metode bruges til at skylle responsobjektet.

Forudsætninger:

Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver:

EN. Installer Django version 3+ på Ubuntu 20+ (helst)
B. Opret et Django-projekt
C. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej.

Konfigurer en Django-app:

EN. Kør følgende kommando for at oprette en Django-app med navnet reqresapp.

$ python3 administrere.py startapp reqresapp

B. Kør følgende kommando for at oprette en bruger til at få adgang til Django-databasen. Hvis du har oprettet brugeren inden da, behøver du ikke køre kommandoen.

$ python3 administrere.py skaberbruger

C. Tilføj appnavnet i INSTALLERET_APP en del af indstillinger.sy-fil.

INSTALLED_APPS = [
..
'reqresapp'
]

Rediger de nødvendige filer:

Rediger visningerne.py-fil med følgende script. Det indeks() funktion af scriptet læser anmodningsstien, metoden og brugeragenten ved hjælp af tre HttpForespørgsel egenskaber. Derefter sendes disse værdier til browseren ved hjælp af HttpResponse () metode.

synspunkter.py

# Importer HttResponse
fra django.http importer HttpResponse
# Definer funktion til håndtering af anmodning og svar
def index (anmodning):
sti = anmodning.sti
metode = anmodning.metode
userAgent = anmodning.META ['HTTP_USER_AGENT']
# anmodning håndteres ved hjælp af HttpResponse-objekt
returner HttpResponse ("

Test af Django-anmodningsresponscyklus


"
"

Anmod sti: "+ sti +
"

Anmodningsmetode: "+ metode +
"

Brugeragent: "+ userAgent +"

")

Rediger webadresserne.py-fil med følgende script til at definere stien, der skal kaldes til indeks() funktion af synspunkter.py fil.

webadresser.py

# Importer sti
fra django.webadresser til import af sti
# Importvisning
fra reqresapp.viser importindeks
# Definer sti
urlmønstre = [
sti (", indeks),
]

Kør følgende kommando for at starte Django-serveren.

$ python3 administrere.py runserver

Kør følgende URL fra browseren for at kontrollere output af appen.

http: // localhost: 8000

Følgende output viser værdierne for tre HttpRequest-attributter sendt af HttpResponse.

Konklusion:

Hvordan de forskellige attributter og metoder i HttpRequest og HttpResponse kan bruges i Django-appen vises i denne vejledning. Django-brugerne vil være i stand til at bruge Django-anmodnings- og svarobjekterne efter at have læst denne tutorial.

Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...