Desarrollo de Vistas en Django en Python

Desarrollo de Vistas en Django en Python

Las vistas en Django son las encargadas de procesar las peticiones HTTP que recibe el servidor y generar las respuestas que se mostrarán al usuario. Son el corazón de cualquier aplicación web Django, ya que son las responsables de controlar el flujo de la aplicación y de proporcionar la información que necesita el usuario.

En este tutorial, veremos cómo crear vistas en Django, tanto vistas basadas en funciones como vistas basadas en clases.

Vistas basadas en funciones

Las vistas basadas en funciones son las más sencillas de crear. Se definen como funciones de Python que reciben como argumento una petición HTTP y devuelven una respuesta.

Para crear una vista basada en funciones, debemos crear un archivo llamado views.py en la aplicación que queremos desarrollar. En este archivo, definimos la función de Python que será la vista.

Por ejemplo, la siguiente función de Python define una vista que devuelve una página HTML con el mensaje «Hello, World!»:

Python
from django.shortcuts import render

def index(request):
    return render(request, 'index.html', {
        'message': 'Hello, World!'
    })

Esta función recibe como argumento una petición HTTP, request, y devuelve una respuesta, render(). La función render() recibe como argumentos el objeto request, el nombre de la plantilla que se va a utilizar y un diccionario con los datos que se van a pasar a la plantilla.

En este caso, la plantilla se llama index.html y el diccionario de datos contiene una clave llamada message con el valor «Hello, World!».

Para asignar esta vista a una URL, debemos modificar el archivo urls.py de la aplicación. En este archivo, definimos una ruta que apunta a la función index().

Por ejemplo, la siguiente ruta apunta a la función index():

Python
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

Esta ruta se corresponde con la URL /. Cuando un usuario solicita la URL /, Django llama a la función index().

Vistas basadas en clases

Las vistas basadas en clases son más potentes que las vistas basadas en funciones. Se definen como clases de Python que heredan de la clase View.

Para crear una vista basada en clases, debemos crear un archivo llamado views.py en la aplicación que queremos desarrollar. En este archivo, definimos la clase de Python que será la vista.

Por ejemplo, la siguiente clase de Python define una vista que devuelve una página HTML con el mensaje «Hello, World!»:

Python
from django.views import View

class IndexView(View):
    def get(self, request):
        return render(request, 'index.html', {
            'message': 'Hello, World!'
        })

Esta clase hereda de la clase View y define un método llamado get(). El método get() se ejecuta cuando un usuario solicita la vista.

En este caso, el método get() llama a la función render() para devolver una página HTML con el mensaje «Hello, World!».

Para asignar esta vista a una URL, debemos modificar el archivo urls.py de la aplicación. En este archivo, definimos una ruta que apunta a la clase IndexView.

Por ejemplo, la siguiente ruta apunta a la clase IndexView:

Python
from django.urls import path

from . import views

urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
]

Esta ruta se corresponde con la URL /. Cuando un usuario solicita la URL /, Django llama al método as_view() de la clase IndexView.

Conclusiones

Las vistas son una parte fundamental de cualquier aplicación web Django. En este tutorial, hemos visto cómo crear vistas basadas en funciones y vistas basadas en clases.

Para obtener más información sobre las vistas en Django, puedes consultar la documentación oficial:

  • Documentación de Django: Vistas: https://docs.djangoproject.com/en/stable/topics/http/views/