Bruk av Django -forespørsel og svarobjekter

Bruk av Django -forespørsel og svarobjekter
Forespørselsresponssyklusen brukes til å overføre dataene mellom klienten og serveren i alle typer web-API-er. Klient-serverarkitekturen brukes i Django-rammeverket for å implementere webapplikasjonen. Forespørselen og svaret er de to hovedkomponentene i klient-server-applikasjonen. An HttpRequest Objekt opprettes i Django -applikasjonen når en klient ber om noen 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 HttpRequest og HttpResponse Klasser av Django Framework vil bli forklart i denne opplæringen.

Django HttpRequest Class:

HttpRequest 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
HttpRequest.sti Hele banen til den forespurte siden returneres av denne attributtet. Ordningen eller domenet er ikke inkludert i den returnerte verdien.
HttpRequest.Path_Info Stiinfo -delen av denne banen vises ved denne attributtet.
HttpRequest.metode HTTP -metoden som brukes for forespørselen vises av dette attributtet.
HttpRequest.ordning Ordningen for forespørselen (HTTP eller HTTPS) er representert med dette attributtet.
HttpRequest.kropp Rå HTTP -forespørselsorganet returneres som en byte -streng av denne attributtet.
HttpRequest.FÅ Alle HTTP får parametere returneres av dette attributtet som et ordbokobjekt.
HttpRequest.POST Alle HTTP -postparametere returneres av dette attributtet som et ordbokobjekt.
HttpRequest.Informasjonskapsler Alle tilgjengelige informasjonskapsler returneres av dette attributtet.
HttpRequest.Filer Alle opplastede filer er inneholdt av dette attributtet.
HttpRequest.Meta Alle tilgjengelige HTTP -overskrifter vises ved denne attributtet.
HttpRequest.innholdstype MIME -typen av forespørselen som er analysert fra Content_type -overskriften vises ved denne attributtet.
HttpRequest.innhold_params Et ordbokobjekt som er inkludert i Content_Type -overskriften, returneres av dette attributtet.
HttpRequest.koding Brukte strømkoding for å avkode det innsendte skjemadataene vises ved denne attributtet.

HttpRequest Methods:

Metode Hensikt
HttpRequest.get_host () Det brukes til å returnere selve vertsnavnet for forespørselen.
HttpRequest.get_full_path () Den brukes til å returnere banen og spørringsstrengen hvis tilgjengelig.
HttpRequest.get_port () Det brukes til å returnere portnummeret til forespørselen.
HttpRequest.is_secure () Hvis forespørselen blir fremsatt ved å bruke HTTPS, kommer den tilbake som sant ellers falsk.
HttpRequest.is_ajax () Hvis forespørselen fremsettes ved å bruke XMLHttpRequest, kommer den tilbake som sant ellers falsk.
HttpRequest.build_absolute_uri (plassering) Det brukes til å returnere det absolutte URI -plasseringen.
HttpRequest.get_signed_cookie (nøkkel, standard = heve_error, salt = ”, max_age = ingen) Den brukes til å returnere informasjonskapslerverdien for en signert informasjonskapsel eller hever en Django.kjerne.signering.Badsignatur unntak for ugyldig signatur.

Django HttpResponse:

HttpResponse Klasse brukes til å håndtere klientresponsen som er definert i Django.http modul. Attributtene til denne klassen er nevnt nedenfor.

HttpResponse attributter:

Attributtnavn Hensikt
HttpResponse.status_kode HTTP -statuskode for svaret returneres av dette attributtet
HttpResponse.Charset Char-settet som brukes til å kode responsen er definert av denne attributtet.
HttpResponse.streaming Standardverdien for denne attributtet er falsk.
HttpResponse.innhold Innholdet er representert i byte -streng med denne attributtet.
HttpResponse.Årsak_frase HTTP -årsaken til frasen for responsen er definert av dette attributtet.
HttpResponse.lukket Når responsen er lukket, vil denne attributtet komme tilbake.

HttpResponse -metoder:

Metode Beskrivelse
HttpResponse.__i det__(innhold = ”, innhold_type = ingen, status = 200, grunn = ingen, charset = ingen) Et httpResponse -objekt med gitt sideinnhold og innholdstype initieres ved denne metoden.
HttpResponse.__getItem__(Overskrift) Verdien av det aktuelle overskriftsnavnet er avkastning med denne metoden.
HttpResponse.__setItem__(header, verdi) Den spesielle verdien er satt til det aktuelle overskriftsnavnet med denne metoden.
HttpResponse.__delitem__(Overskrift) Det aktuelle overskriftenes navn blir slettet med denne metoden.
HttpResponse.sett standard(header, verdi) Standard overskriftsverdi settes av denne metoden.
HttpResponse.has_header(Overskrift) Eksistensen av det aktuelle overskriftsnavnet blir sjekket med denne metoden.
HttpResponse.skrive(innhold) Det fillignende responsobjektet opprettes ved denne metoden.
HttpResponse.getValue () Verdien av httpResponse.Innhold hentes med denne metoden.
HttpResponse.leselig() Det strømlignende objektet til HttpResponse-klassen opprettes ved denne metoden.
HttpResponse.Søkbar () Denne metoden brukes til å gjøre responsobjektet til å søke.
HttpResponse.fortelle() Denne metoden brukes til å lage en HttpResponse-forekomst som et fillignende objekt.
HttpResponse.Flush () Denne metoden brukes til å skylle responsobjektet.

Forutsetninger:

Før du øver på skriptet til 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 å sjekke at serveren fungerer som den skal eller ikke.

Sett opp en Django -app:

EN. Kjør følgende kommando for å opprette en Django -app som heter Reqresapp.

$ Python3 Administrer.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 Administrer.Py CreateSuperuser

C. Legg til appnavnet i Installert_app del av Innstillinger.py -fil.

Installert_apps = [
..
'Reqresapp'
]

Endre de nødvendige filene:

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

utsikt.py

# Importer HttResponse
Fra Django.HTTP Importer HttpResponse
# Definer funksjon for å håndtere forespørsel og respons
def indeks (forespørsel):
bane = forespørsel.sti
Metode = forespørsel.metode
userAgent = forespørsel.Meta ['http_user_agent']
# Forespørsel håndteres ved hjelp av HttpResponse -objekt
Returner HttpResponse ("

Testing Django Request Response Cycle


""
""

Forespørsel: " + Sti +
""

Request Method: " + Metode +
""

Brukeragent: " + UserAgent +"

")

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

URLS.py

# Importer bane
Fra Django.URLS importerer bane
# Importer visning
Fra Reqresapp.Visninger importindeks
# Definer sti
urlpatterns = [
bane (", indeks),
]

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

$ Python3 Administrer.py runserver

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

http: // localhost: 8000

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

Konklusjon:

Hvordan de forskjellige attributtene og metodene for HttpRequest og HttpResponse kan brukes i Django -appen vises i denne opplæringen. Django -brukerne vil kunne bruke Django -forespørselen og svarobjektene etter å ha lest denne opplæringen.