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.
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
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