Django

Användning av Django Request and Response Objects

Användning av Django Request and Response Objects
Begär-svar-cykeln används för att överföra data mellan klienten och servern i alla typer av webb-API: er. Klient-serverarkitekturen används i Django-ramverket för att implementera webbapplikationen. Begäran och svaret är de två huvudkomponenterna i klient-serverapplikationen. Ett HttpFörfrågan objekt skapas i Django-applikationen när en klient begär någon resurs. En viss vy-funktion används för att hantera begäran och skicka svaret med HttpResponse objekt. Användningen av olika attribut och metoder för HttpFörfrågan och HttpResponse klasser i Django-ramverket kommer att förklaras i denna handledning.

Django HttpFörfrågan klass:

HttpFörfrågan klass används för att hantera klientförfrågan som definieras i django.http modul. Attributen för denna klass nämns nedan.

HttpRequest-attribut:

Attributnamn Syfte
HttpFörfrågan.väg Hela sökvägen för den begärda sidan returneras av detta attribut. Schemat eller domänen ingår inte i det returnerade värdet.
HttpFörfrågan.sökväg_info Baninformationsdelen av den här sökvägen visas av detta attribut.
HttpFörfrågan.metod HTTP-metoden som används för begäran visas av detta attribut.
HttpFörfrågan.schema Schemat för begäran (HTTP eller HTTP) representeras av detta attribut.
HttpFörfrågan.kropp Den råa HTTP-begäran-kroppen returneras som en byte-sträng av detta attribut.
HttpFörfrågan.SKAFFA SIG Alla HTTP GET-parametrar returneras av detta attribut som ett ordbokobjekt.
HttpFörfrågan.POSTA Alla HTTP POST-parametrar returneras av detta attribut som ett ordbokobjekt.
HttpFörfrågan.SMÅKAKOR Alla tillgängliga cookies returneras av detta attribut.
HttpFörfrågan.FILER Alla uppladdade filer ingår i detta attribut.
HttpFörfrågan.META Alla tillgängliga HTTP-rubriker visas av detta attribut.
HttpFörfrågan.innehållstyp MIME-typen för begäran som analyseras från CONTENT_TYPE-rubriken visas av detta attribut.
HttpFörfrågan.content_params Ett ordbokobjekt som ingår i CONTENT_TYPE-rubriken returneras av detta attribut.
HttpFörfrågan.kodning Den aktuella kodningen som används för att avkoda de skickade formulärdata visas av detta attribut.

HttpRequest Methods:

Metod Syfte
HttpFörfrågan.get_host () Den används för att returnera det faktiska värdnamnet för begäran.
HttpFörfrågan.get_full_path () Den används för att returnera sökvägen och frågesträngen om den är tillgänglig.
HttpFörfrågan.get_port () Den används för att returnera portnumret på begäran.
HttpFörfrågan.är_säker () Om begäran görs med HTTPS returneras den som sant annars falskt.
HttpFörfrågan.is_ajax () Om begäran görs med XMLHttpRequest, returneras den som sant annars falsk.
HttpFörfrågan.build_absolute_uri (plats) Den används för att returnera den absoluta URI-platsen.
HttpFörfrågan.get_signed_cookie (key, default = RAISE_ERROR, salt = ”, max_age = None) Den används för att returnera cookievärdet för en signerad cookie eller höja en django.kärna.signering.BadSignature-undantag för ogiltig signatur.

Django Http Svar:

HttpResponse klass används för att hantera klientsvaret som definieras i django.http modul. Attributen för denna klass nämns nedan.

HttpResponse-attribut:

Attributnamn Syfte
HttpResponse.status_kod HTTP-statuskoden för svaret returneras av detta attribut
HttpResponse.charset Char-set som används för att koda svaret definieras av detta attribut.
HttpResponse.strömning Standardvärdet för detta attribut är False.
HttpResponse.innehåll Innehållet representeras i byte-sträng av detta attribut.
HttpResponse.reason_phrase HTTP-orsaksfrasen för svaret definieras av detta attribut.
HttpResponse.stängd När svaret stängs returnerar detta attribut True.

HttpResponse Methods:

Metod Beskrivning
HttpResponse.__i det__(content = ”, content_type = None, status = 200, reason = None, charset = None) Ett HttpResponse-objekt med angivet sidinnehåll och innehållstyp initieras med den här metoden.
HttpResponse.__getitem__(rubrik) Värdet på det specifika rubriknamnet returneras med den här metoden.
HttpResponse.__setitem__(rubrik, värde) Det specifika värdet ställs in på det specifika rubriknamnet med den här metoden.
HttpResponse.__delitem__(rubrik) Det specifika rubriknamnet raderas med den här metoden.
HttpResponse.Sätta som normalt(rubrik, värde) Standardrubrikvärde ställs in med den här metoden.
HttpResponse.has_header(rubrik) Förekomsten av det specifika rubriknamnet kontrolleras med den här metoden.
HttpResponse.skriva(innehåll) Det filliknande svarobjektet skapas med den här metoden.
HttpResponse.getvalue () Värdet av HttpResponse.innehåll hämtas med denna metod.
HttpResponse.läsbar() Det strömliknande objektet i HttpResponse-klassen skapas med den här metoden.
HttpResponse.sökbar () Denna metod används för att göra svarsobjektet sökbart.
HttpResponse.säga() Den här metoden används för att skapa en HttpResponse-instans som ett filliknande objekt.
HttpResponse.spola() Denna metod används för att spola responsobjektet.

Förutsättningar:

Innan du övar på skriptet i den här självstudien måste du slutföra följande uppgifter:

A. Installera Django version 3+ på Ubuntu 20+ (helst)
B. Skapa ett Django-projekt
C. Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte.

Ställ in en Django-app:

A. Kör följande kommando för att skapa en Django-app med namnet reqresapp.

$ python3 hantera.py startapp reqresapp

B. Kör följande kommando för att skapa en användare för åtkomst till Django-databasen. Om du har gjort användaren innan dess behöver du inte köra kommandot.

$ python3 hantera.py skaparanvändare

C. Lägg till appnamnet i INSTALLERAD_APP del av inställningar.sidy-fil.

INSTALLED_APPS = [
..
'reqresapp'
]

Ändra nödvändiga filer:

Ändra vyerna.py-fil med följande skript. De index() Skriptets funktion läser begärans sökväg, metod och användaragent med hjälp av tre HttpFörfrågan attribut. Därefter skickas dessa värden till webbläsaren med hjälp av HttpResponse () metod.

utsikt.py

# Importera HttResponse
från django.http importera HttpResponse
# Definiera funktion för att hantera begäran och svar
def index (begäran):
sökväg = begäran.väg
metod = begäran.metod
userAgent = begäran.META ['HTTP_USER_AGENT']
# begäran hanteras med HttpResponse-objekt
returnera HttpResponse ("

Testar Django Begär svarcykel


"
"

Begär sökväg: "+ sökväg +
"

Begärningsmetod: "+ metod +
"

Användaragent: "+ userAgent +"

")

Ändra webbadresserna.py-fil med följande skript för att definiera sökvägen för att anropa index() funktion av utsikt.py fil.

webbadresser.py

# Importera sökväg
från django.webbadress för webbadresser
# Importera vy
från reqresapp.visar importindex
# Definiera väg
urlmönster = [
sökväg (", index),
]

Kör följande kommando för att starta Django-servern.

$ python3 hantera.py runserver

Kör följande URL från webbläsaren för att kontrollera utdata från appen.

http: // localhost: 8000

Följande utdata visar värdena för tre HttpRequest-attribut skickade av HttpResponse.

Slutsats:

Hur de olika attributen och metoderna för HttpRequest och HttpResponse kan användas i Django-appen visas i denna handledning. Django-användare kommer att kunna använda Django-begäran och svarsobjekt efter att ha läst denna handledning.

Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...
Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...