Uso della richiesta di Django e oggetti di risposta

Uso della richiesta di Django e oggetti di risposta
Il ciclo di richiesta-risposta viene utilizzato per trasferire i dati tra client e server in tutti i tipi di API Web. L'architettura client-server viene utilizzata nel framework Django per implementare l'applicazione Web. La richiesta e la risposta sono i due componenti principali dell'applicazione client-server. UN Httprequest L'oggetto viene creato nell'applicazione Django quando un client richiede qualsiasi risorsa. Una particolare funzione di vista viene utilizzata per gestire la richiesta e inviare la risposta utilizzando il Httpresponse oggetto. Gli usi di diversi attributi e metodi Httprequest E Httpresponse Le classi del framework Django saranno spiegate in questo tutorial.

Classe Django Httprequest:

Httprequest la classe viene utilizzata per gestire la richiesta del client definita in Django.http modulo. Gli attributi di questa classe sono menzionati di seguito.

Attributi httprequest:

nome attributo Scopo
Httprequest.sentiero Il percorso completo della pagina richiesta viene restituito da questo attributo. Lo schema o il dominio non è incluso nel valore restituito.
Httprequest.path_info La parte delle informazioni del percorso di questo percorso è mostrata da questo attributo.
Httprequest.metodo Il metodo HTTP utilizzato per la richiesta è mostrato da questo attributo.
Httprequest.schema Lo schema della richiesta (http o https) è rappresentato da questo attributo.
Httprequest.corpo Il corpo di richiesta HTTP RAW viene restituito come stringa di byte da questo attributo.
Httprequest.OTTENERE Tutti i parametri HTTP GET vengono restituiti da questo attributo come un oggetto del dizionario.
Httprequest.INVIARE Tutti i parametri di Post HTTP vengono restituiti da questo attributo come oggetto del dizionario.
Httprequest.BISCOTTI Tutti i cookie disponibili vengono restituiti da questo attributo.
Httprequest.FILE Tutti i file caricati sono contenuti da questo attributo.
Httprequest.Meta Tutte le intestazioni HTTP disponibili sono mostrate da questo attributo.
Httprequest.tipo di contenuto Il tipo MIME della richiesta che viene analizzata dall'intestazione di content_type è mostrato da questo attributo.
Httprequest.content_params Un oggetto del dizionario incluso nell'intestazione di content_type viene restituito da questo attributo.
Httprequest.codifica La codifica corrente utilizzata per decodificare i dati del modulo inviato è mostrata da questo attributo.

Metodi httprequest:

Metodo Scopo
Httprequest.get_host () Viene utilizzato per restituire il nome host effettivo della richiesta.
Httprequest.get_full_path () Viene utilizzato per restituire il percorso e la stringa di query se disponibile.
Httprequest.get_port () Viene utilizzato per restituire il numero di porta della richiesta.
Httprequest.is_secure () Se la richiesta viene presentata utilizzando HTTPS, allora restituisce come vero altrimenti falso.
Httprequest.is_ajax () Se la richiesta viene presentata utilizzando XMLHTTPREQUEST, allora ritorna come vero altrimenti falso.
Httprequest.build_absolute_uri (posizione) Viene utilizzato per restituire la posizione dell'URI assoluta.
Httprequest.get_signed_cookie (chiave, default = alza_error, salt = ", max_age = nessuna) Viene utilizzato per restituire il valore del cookie per un biscotto firmato o raccoglie un django.nucleo.firma.Eccezione di badsignatura per la firma non valida.

Django httpresponse:

Httpresponse la classe viene utilizzata per gestire la risposta del client definita in Django.http modulo. Gli attributi di questa classe sono menzionati di seguito.

Attributi Httpresponse:

nome attributo Scopo
Httpresponse.status_code Il codice di stato HTTP della risposta viene restituito da questo attributo
Httpresponse.chatset Il set char che viene utilizzato per codificare la risposta è definito da questo attributo.
Httpresponse.streaming Il valore predefinito di questo attributo è falso.
Httpresponse.contenuto Il contenuto è rappresentato nella stringa di byte da questo attributo.
Httpresponse.ragion_phrase La frase di motivo HTTP della risposta è definita da questo attributo.
Httpresponse.Chiuso Quando la risposta è chiusa, questo attributo restituirà vero.

Metodi HttPresponse:

Metodo Descrizione
Httpresponse.__dentro__(content = ”, content_type = none, status = 200, ragion = nessuno, chatset = nessuno) Un oggetto httpresponse con il contenuto e il tipo di contenuto della pagina indicati sono avviati con questo metodo.
Httpresponse.__geTitem__(intestazione) Il valore del nome di intestazione particolare è il ritorno con questo metodo.
Httpresponse.__setitem__(intestazione, valore) Il valore particolare è impostato sul nome di intestazione particolare con questo metodo.
Httpresponse.__delitem__(intestazione) Il nome di intestazione particolare è eliminato da questo metodo.
Httpresponse.imposta default(intestazione, valore) Il valore di intestazione predefinito è impostato con questo metodo.
Httpresponse.has_header(intestazione) L'esistenza del nome di intestazione particolare è controllata da questo metodo.
Httpresponse.scrivere(contenuto) L'oggetto di risposta simile a un file viene creato da questo metodo.
Httpresponse.getValue () Il valore di HttPresponse.Il contenuto viene recuperato con questo metodo.
Httpresponse.leggibile() L'oggetto simile a un flusso della classe HTTPResponse è creato con questo metodo.
Httpresponse.Selatable () Questo metodo viene utilizzato per rendere l'oggetto di risposta che si cerca.
Httpresponse.raccontare() Questo metodo viene utilizzato per creare un'istanza HTTPResponse come oggetto simile a un file.
Httpresponse.sciacquone() Questo metodo viene utilizzato per scaricare l'oggetto di risposta.

Prerequisiti:

Prima di praticare la sceneggiatura di questo tutorial, è necessario completare le seguenti attività:

UN. Installa la versione Django 3+ su Ubuntu 20+ (preferibilmente)
B. Crea un progetto Django
C. Esegui il server Django per verificare che il server funzioni correttamente o meno.

Imposta un'app Django:

UN. Esegui il seguente comando per creare un'app Django denominata ReqreSapp.

$ Python3 Gestisci.Py Startapp ReqreSapp

B. Esegui il comando seguente per creare un utente per accedere al database Django. Se hai fatto l'utente prima di allora, non è necessario eseguire il comando.

$ Python3 Gestisci.py createsuperuser

C. Aggiungi il nome dell'app in Installato_app parte di impostazioni.Py file.

Installato_apps = [
..
'ReqreSapp'
"

Modifica i file necessari:

Modifica le viste.File PY con il seguente script. IL indice() La funzione dello script leggerà il percorso di richiesta, il metodo e l'agente utente utilizzando tre Httprequest attributi. Successivamente, questi valori verranno inviati al browser utilizzando Httpresponse () metodo.

visualizzazioni.Py

# Importa httresponse
da Django.Importa HTTP HttPresponse
# Definire la funzione per gestire la richiesta e la risposta
DEF INDICE (richiesta):
Path = Richiesta.sentiero
Metodo = richiesta.metodo
useragent = richiesta.Meta ['http_user_agent']
# La richiesta viene gestita utilizzando l'oggetto httpresponse
restituire httpresponse ("

Test del ciclo di risposta alla richiesta di Django


"
"

Percorso di richiesta: " + percorso +
"

Metodo di richiesta: " + metodo +
"

Agente utente: " + useragent +"

")

Modifica gli URL.file py con il seguente script per definire il percorso per chiamare il indice() funzione di visualizzazioni.Py file.

URL.Py

# Percorso di importazione
da Django.percorso di importazione degli URL
# Visualizza importazione
da reqresapp.Visualizza indice di importazione
# Definisci il percorso
urlpatterns = [
Path (", indice),
"

Esegui il comando seguente per avviare il server Django.

$ Python3 Gestisci.Py Runserver

Eseguire il seguente URL dal browser per verificare l'output dell'app.

http: // localhost: 8000

Il seguente output mostra i valori di tre attributi HTTPREQUEST inviati da HttPresponse.

Conclusione:

In questo tutorial i diversi attributi e metodi di HttpRequest e HttPresponse. Gli utenti di Django saranno in grado di utilizzare gli oggetti di richiesta e risposta Django dopo aver letto questo tutorial.