Ciclo de solicitud y respuesta de Django: objetos HttpRequest y HttpResponse

Prerrequisito – Vistas en Django | Python
Antes de saltar al uso de métodos de conveniencia que vienen con las vistas, hablemos sobre el ciclo de solicitud y respuesta. Entonces, cuando ocurre una solicitud en un servidor Django, suceden un par de cosas. Uno de ellos es el Middleware.
 

Middleware El 
middleware es como un término medio entre una solicitud y una respuesta. Es como una ventana a través de la cual pasan los datos. Como en una ventana, la luz entra y sale de la casa. De manera similar, cuando se realiza una solicitud, se mueve a través de middlewares a vistas, y los datos se pasan a través de middlewares como respuesta. 
Aquí están los middlewares predeterminados instalados en Django. 
 

middlewares-django-geeksforgeeks

Puede agregar sus middlewares. Hablaremos de eso en los próximos artículos.
 

Objetos de solicitud y respuesta:

Django usa objetos de solicitud y respuesta para pasar el estado a través del sistema.
Cuando se solicita una página, Django crea un objeto HttpRequest que contiene metadatos sobre la solicitud. Luego, Django carga la vista adecuada, pasando HttpRequest como primer argumento a la función de vista. Cada vista es responsable de devolver un objeto HttpResponse.
 

Objeto HttpRequest y HttpResponse Ejemplo
 

  • Para explicar estos objetos, creemos una vista de inicio como se muestra a continuación en views.py 
     

Python3

# importing HttResponse from library
from django.http import HttpResponse
 
def home(request):
    # request is handled using HttpResponse object
    return HttpResponse("Any kind of HTML Here")
  • Para manejar la solicitud, asignemos una URL a esta vista en urls.py 
     

Python3

# importing view from views.py
from .views import home
 
urlpatterns = [
    path('', home),
 
]
  • Ahora puede ejecutar el servidor para ver lo siguiente en el navegador 
     

HttpRequest-and-HttpResponse-Object-example

Atributos HttpRequest – Django

Puede usar los siguientes atributos con HttpRequest para manipulación avanzada 
 

Atributo Descripción
HttpRequest.esquema Una string que representa el esquema de la solicitud (normalmente HTTP o HTTPS).
HttpRequest.cuerpo Devuelve el cuerpo de la solicitud HTTP sin procesar como una string de bytes.
HttpRequest.ruta Devuelve la ruta completa a la página solicitada, no incluye el esquema ni el dominio.
HttpRequest.ruta_info Muestra la porción de información de ruta de la ruta.
HttpRequest.método Muestra el método HTTP utilizado en la solicitud.
HttpRequest.codificación Muestra la codificación actual utilizada para decodificar los datos de envío del formulario.
HttpRequest.content_type Muestra el tipo MIME de la solicitud, analizado desde el encabezado CONTENT_TYPE.
HttpRequest.content_params Devuelve un diccionario de parámetros clave/valor incluidos en el encabezado CONTENT_TYPE.
HttpRequest.GET Devuelve un objeto similar a un diccionario que contiene todos los parámetros HTTP GET dados.
HttpRequest.POST Es un objeto similar a un diccionario que contiene todos los parámetros HTTP POST dados.
HttpRequest.COOKIES Devuelve todas las cookies disponibles.
HttpRequest.ARCHIVOS Contiene todos los archivos subidos.
HttpRequest.META Muestra todos los encabezados Http disponibles.
HttpRequest.resolver_match Contiene una instancia de ResolverMatch que representa la URL resuelta.

Métodos HttpRequest – Django

Puede usar los siguientes métodos con HttpRequest para manipulación avanzada 
 

Atributo Descripción
HttpRequest.get_host() Devuelve el host original de la solicitud.
HttpRequest.get_port() Devuelve el puerto de origen de la solicitud.
HttpRequest.get_full_path() Devuelve la ruta, más una string de consulta adjunta, si corresponde.
HttpRequest.build_absolute_uri (ubicación) Devuelve la forma URI absoluta de ubicación.
HttpRequest.get_signed_cookie (clave, predeterminado=RAISE_ERROR, salt=”, max_age=Ninguno) Devuelve un valor de cookie para una cookie firmada o genera una excepción django.core.signing.BadSignature si la firma ya no es válida.
HttpRequest.is_secure() Devuelve True si la solicitud es segura; es decir, si se hizo con HTTPS.
HttpRequest.is_ajax() Devuelve True si la solicitud se realizó a través de XMLHttpRequest.

Atributos HttpResponse – Django

Puede usar los siguientes atributos con HttpResponse para manipulación avanzada 
 

Atributo Descripción
HttpResponse.content Una string de bytes que representa el contenido, codificada a partir de una string si es necesario.
HttpResponse.juego de caracteres Es una string que indica el conjunto de caracteres en el que se codificará la respuesta.
HttpResponse.status_code Es un código de estado HTTP para la respuesta.
HttpResponse.razón_frase La frase de motivo HTTP para la respuesta.
HttpResponse.transmisión Es falso por defecto.
HttpResponse.cerrado Es True si la respuesta ha sido cerrada.

Métodos HttpResponse – Django

Puede usar los siguientes métodos con HttpResponse para manipulación avanzada 
 

Método Descripción
HttpResponse.__init__ (contenido=”, content_type=Ninguno, estado=200, motivo=Ninguno, juego de caracteres=Ninguno) Se utiliza para instanciar un objeto HttpResponse con el contenido de la página y el tipo de contenido dados.
HttpResponse.__setitem__ (encabezado, valor) Se utiliza para establecer el nombre del encabezado dado en el valor dado.
HttpResponse.__delitem__ (encabezado) Elimina el encabezado con el nombre dado.
HttpResponse.__getitem__ (encabezado) Devuelve el valor del nombre de encabezado dado.
HttpResponse.has_header (encabezado) Devuelve True o False en función de una verificación que no distingue entre mayúsculas y minúsculas para un encabezado con el nombre proporcionado.
HttpResponse.setdefault (encabezado, valor) Se utiliza para establecer el encabezado predeterminado.
HttpResponse.write (contenido) Se utiliza para crear un objeto de respuesta de un objeto similar a un archivo.
HttpResponse.flush() Se utiliza para vaciar el objeto de respuesta.
HttpResponse.tell() Este método convierte una instancia de HttpResponse en un objeto similar a un archivo.
HttpResponse.getvalue() Se utiliza para obtener el valor de HttpResponse.content.
HttpResponse.legible() Este método se usa para crear un objeto similar a una secuencia de la clase HttpResponse.
HttpResponse.seekable() Se utiliza para hacer que el objeto de respuesta sea buscable.

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *