Django

Bruk av Django Request and Response Objects

Bruk av Django Request and Response Objects
Forespørselssyklusen brukes til å overføre data mellom klienten og serveren i alle typer web-API-er. Klient-serverarkitekturen brukes i Django-rammeverket for å implementere webapplikasjonen. Forespørsel og svar er de to hovedkomponentene i klientserver-applikasjonen. An HttpForespørsel objekt opprettes i Django-applikasjonen når en klient ber om en ressurs. En bestemt visningsfunksjon brukes til å håndtere forespørselen og sende svaret ved hjelp av HttpResponse gjenstand. Bruken av forskjellige attributter og metoder for HttpForespørsel og HttpResponse klasser i Django-rammeverket vil bli forklart i denne veiledningen.

Django HttpForespørselsklasse:

HttpForespørsel klasse brukes til å håndtere klientforespørselen som er definert i django.http modul. Attributtene til denne klassen er nevnt nedenfor.

HttpRequest Attributter:

Attributtnavn Hensikt
HttpForespørsel.sti Hele banen til den forespurte siden returneres av dette attributtet. Ordningen eller domenet er ikke inkludert i den returnerte verdien.
HttpForespørsel.sti_info Stiinfo-delen av denne banen vises av dette attributtet.
HttpForespørsel.metode HTTP-metoden som brukes for forespørselen vises av dette attributtet.
HttpForespørsel.ordningen Ordningen for forespørselen (HTTP eller HTTP) er representert av dette attributtet.
HttpForespørsel.kropp Den rå HTTP-forespørsel kroppen returneres som en byte streng av dette attributtet.
HttpForespørsel.FÅ Alle HTTP GET-parametere returneres av dette attributtet som et ordbokobjekt.
HttpForespørsel.POST Alle HTTP POST-parametere returneres av dette attributtet som et ordbokobjekt.
HttpForespørsel.COOKIES Alle tilgjengelige informasjonskapsler returneres av dette attributtet.
HttpForespørsel.FILER Alle opplastede filer er inneholdt av dette attributtet.
HttpForespørsel.META Alle tilgjengelige HTTP-overskrifter vises av dette attributtet.
HttpForespørsel.innholdstype MIME-typen forespørselen som blir analysert fra CONTENT_TYPE-overskriften vises av dette attributtet.
HttpForespørsel.content_params Et ordbokobjekt som er inkludert i CONTENT_TYPE-overskriften, returneres av dette attributtet.
HttpForespørsel.koding Den brukte nåværende kodingen for å dekode de innsendte skjemadataene vises av dette attributtet.

HttpRequest Methods:

Metode Hensikt
HttpForespørsel.get_host () Den brukes til å returnere det faktiske vertsnavnet til forespørselen.
HttpForespørsel.get_full_path () Den brukes til å returnere banen og spørringsstrengen hvis tilgjengelig.
HttpForespørsel.get_port () Den brukes til å returnere portnummeret til forespørselen.
HttpForespørsel.er_sikker () Hvis forespørselen blir gjort ved hjelp av HTTPS, returneres den som sant ellers falsk.
HttpForespørsel.is_ajax () Hvis forespørselen er gjort ved å bruke XMLHttpRequest, returneres den som sant ellers falsk.
HttpForespørsel.build_absolute_uri (plassering) Den brukes til å returnere den absolutte URI-plasseringen.
HttpForespørsel.get_signed_cookie (nøkkel, standard = RAISE_ERROR, salt = ”, max_age = Ingen) Den brukes til å returnere cookieverdien for en signert cookie eller hever en django.kjerne.signering.BadSignature unntak for ugyldig signatur.

Django Http Svar:

HttpResponse klasse brukes til å håndtere klientsvaret som er definert i django.http modul. Attributtene til denne klassen er nevnt nedenfor.

HttpResponse-attributter:

Attributtnavn Hensikt
HttpResponse.status_code HTTP-statuskoden for svaret returneres av dette attributtet
HttpResponse.charset Char-settet som brukes til å kode svaret er definert av dette attributtet.
HttpResponse.streaming Standardverdien for dette attributtet er False.
HttpResponse.innhold Innholdet er representert i byte-streng av dette attributtet.
HttpResponse.reason_phrase HTTP-årsaken til svaret er definert av dette attributtet.
HttpResponse.lukket Når svaret er lukket, vil denne attributtet returnere True.

HttpResponse Metoder:

Metode Beskrivelse
HttpResponse.__i det__(content = ”, content_type = None, status = 200, reason = None, charset = None) Et HttpResponse-objekt med gitt sideinnhold og innholdstype initieres av denne metoden.
HttpResponse.__getitem__(Overskrift) Verdien av det spesielle headernavnet returneres etter denne metoden.
HttpResponse.__setitem__(topptekst, verdi) Den spesielle verdien er satt til det bestemte headernavnet med denne metoden.
HttpResponse.__delitem__(Overskrift) Det spesielle headernavnet slettes med denne metoden.
HttpResponse.sett standard(topptekst, verdi) Standard topptekstverdi er satt av denne metoden.
HttpResponse.has_header(Overskrift) Eksistensen av det bestemte headernavnet kontrolleres av denne metoden.
HttpResponse.skrive(innhold) Det fillignende svarobjektet er opprettet med denne metoden.
HttpResponse.getvalue () Verdien av HttpResponse.innhold hentes etter denne metoden.
HttpResponse.leselig() Det strømlignende objektet til HttpResponse-klassen er opprettet med denne metoden.
HttpResponse.søkbar () Denne metoden brukes til å gjøre responsobjektet søkbart.
HttpResponse.fortelle() Denne metoden brukes til å opprette en HttpResponse-forekomst som et fillignende objekt.
HttpResponse.flush () Denne metoden brukes til å skylle responsobjektet.

Forutsetninger:

Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver:

EN. Installer Django versjon 3+ på Ubuntu 20+ (helst)
B. Lag et Django-prosjekt
C. Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.

Konfigurer en Django-app:

EN. Kjør følgende kommando for å opprette en Django-app med navnet reqresapp.

$ python3 administrere.py startapp reqresapp

B. Kjør følgende kommando for å opprette en bruker for tilgang til Django-databasen. Hvis du har laget brukeren før da, trenger du ikke å kjøre kommandoen.

$ python3 administrere.py skaperbruker

C. Legg til appnavnet i INSTALLERT_APP del av innstillinger.sy-fil.

INSTALLED_APPS = [
..
'reqresapp'
]

Endre nødvendige filer:

Endre visningene.py-fil med følgende skript. De indeks () funksjonen til skriptet vil lese forespørselsbanen, metoden og brukeragenten ved å bruke tre HttpForespørsel attributter. Deretter vil disse verdiene bli sendt til nettleseren ved hjelp av HttpResponse () metode.

utsikt.py

# Importer HttResponse
fra django.http importer HttpResponse
# Definer funksjon for å håndtere forespørsel og svar
def indeks (forespørsel):
sti = forespørsel.sti
metode = forespørsel.metode
userAgent = forespørsel.META ['HTTP_USER_AGENT']
# forespørsel håndteres ved hjelp av HttpResponse-objektet
returner HttpResponse ("

Testing av Django forespørselssyklus


"
"

Forespørsel sti: "+ sti +
"

Forespørselsmetode: "+ metode +
"

Brukeragent: "+ userAgent +"

")

Endre nettadressene.py-fil med følgende skript for å definere banen du skal ringe til indeks () funksjon av utsikt.py fil.

nettadresser.py

# Importer sti
fra django.URL-adresse for import
# Importer visning
fra reqresapp.viser importindeks
# Definer sti
urlpatterns = [
sti (", indeks),
]

Kjør følgende kommando for å starte Django-serveren.

$ python3 administrere.py runserver

Kjør følgende URL fra nettleseren for å sjekke utdataene til appen.

http: // localhost: 8000

Følgende utdata viser verdiene til tre HttpRequest-attributter sendt av HttpResponse.

Konklusjon:

Hvordan de forskjellige attributtene og metodene til HttpRequest og HttpResponse kan brukes i Django-appen, vises i denne veiledningen. Django-brukerne vil kunne bruke Django-forespørsel og responsobjekter etter å ha lest denne opplæringen.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...