Django es un marco de desarrollo web de primer nivel escrito en Python que promueve un desarrollo rápido, un diseño limpio y un enfoque pragmático. Uno de los aspectos más importantes del desarrollo web es el manejo de formularios. En ese contexto, centrémonos en la Sección 19.4: Formularios en Django.

Los formularios son una parte esencial de cualquier aplicación web. Son la interfaz principal para la entrada del usuario, lo que les permite ingresar datos que luego la aplicación puede usar para realizar una variedad de tareas. En Django, los formularios son manejados por una biblioteca de formularios integrada.

Creando una aplicación Django

Para comenzar, necesitamos crear una nueva aplicación Django. Supongamos que el nombre de nuestra aplicación es 'myapp'. Para crear esta aplicación, usamos el comando:


python administrar.py startapp miaplicación

A continuación, debemos agregar 'myapp' a la lista de INSTALLED_APPS en nuestro archivo settings.py para que Django sepa que existe.

Formularios en Django

Django proporciona varias formas de crear formularios. La forma más común es utilizar la clase Formulario. Una clase de formulario es simplemente una forma de definir campos de formulario. Cada campo de formulario tiene un tipo de campo específico: CharField para campos de entrada de texto, DateTimeField para entradas de fecha y hora, etc.

Por ejemplo, podemos crear un formulario simple para un sistema de comentarios de la siguiente manera:


desde formularios de importación de Django

formulario de comentario de clase (formularios.formulario):
    nombre = formularios.CharField(max_length=100)
    comentario = formularios.CharField(widget=formularios.Textarea)

Este es un formulario muy básico con dos campos: un campo de entrada de texto para el nombre y un área de texto para el comentario. Django maneja automáticamente la representación de estos campos como HTML, valida la entrada del usuario y convierte la entrada del usuario a tipos de datos de Python.

Usar formularios en vistas

Después de definir un formulario, podemos usarlo en una vista. Una vista es simplemente una función de Python que recibe una solicitud web y devuelve una respuesta. En Django, podemos usar la función render() para renderizar una plantilla HTML con un contexto determinado. El contexto es un diccionario que asigna nombres de variables a valores de Python.

Por ejemplo, aquí hay una vista que muestra nuestro formulario CommentForm:


desde django.shortcuts importar render
desde .forms importar formulario de comentario

comentario def (solicitud):
    formulario = Formulario de comentario()
    devolver render(solicitud, 'comentario.html', {'formulario': formulario})

Esta vista simplemente crea una nueva instancia de nuestro CommentForm y la pasa a la plantilla 'comment.html' bajo el nombre 'formulario'.

Manejo del envío de formularios

Cuando un usuario envía un formulario, necesitamos procesar los datos del formulario. Django hace esto fácil con el método is_valid(). Este método verifica que los datos del formulario sean válidos, que todos los campos se hayan completado correctamente y que los datos pasen todas las validaciones definidas.

Si el formulario es válido, podemos acceder a los datos del formulario limpio a través del atributo clean_data, que es un diccionario que asigna nombres de campos a valores de campos limpios.

Por ejemplo, aquí hay una vista que procesa nuestro envío de CommentForm:


desde django.shortcuts importar render, redirigir
desde .forms importar formulario de comentario

comentario def (solicitud):
    si solicitud.método == 'POST':
        formulario = Formulario de comentario (solicitud.POST)
        si form.is_valid():
            # procesar los datos en form.cleaned_data
            #...
            devolver redirección ('éxito')
    demás:
        formulario = Formulario de comentario()
    devolver render(solicitud, 'comentario.html', {'formulario': formulario})

Esta vista primero verifica si la solicitud es una POST. Si es así, crea una nueva instancia de CommentForm a partir de los datos POST, verifica que el formulario sea válido y luego procesa los datos. Si la solicitud no es una POST, la vista simplemente muestra el formulario como antes.

Conclusión

Los formularios son una parte esencial del desarrollo web y Django proporciona una forma poderosa y flexible de trabajar con ellos. Con la biblioteca de formularios de Django, podemos definir formularios de forma declarativa, procesar envíos de formularios con facilidad y reutilizar formularios comunes en toda nuestra aplicación.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la función del método is_valid() en Django?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Formularios en Django: Plantillas en Django 118

Siguiente página del libro electrónico gratuito:

Formularios en Django: Plantillas en Django

Tiempo estimado de lectura: 3 minutos

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.

+ 9 millones
estudiantes

Certificado gratuito y
válido con código QR

60 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo y audiolibros