La mejor manera de dominar Django es usarlo para desarrollar aplicaciones full-stack. Encontrará muchas características fascinantes cuando trabaje con el marco. Uno de ellos es cómo representar formularios en plantillas utilizando formularios crujientes.
Usar django-crispy-forms es una de las muchas formas en que puede representar formularios en Django. La dependencia le permite crear formularios en plantillas sin escribir código HTML. Puede crear fácilmente diseños reutilizables sin la molestia de escribir código de formulario.
Puede obtener más información instalando la biblioteca, luego configurándola y usándola para crear un formulario de registro.
Cómo funciona Django-crispy-forms
El biblioteca Django-crispy-forms viene con un código HTML incorporado que puede personalizar según sus necesidades. Incluye un filtro llamado |crujiente que representa formularios basados en div en la plantilla.
El {% crujiente %} Las etiquetas generarán formularios de acuerdo con una configuración específica. Django-crispy-forms funciona bien con otras dependencias de plantilla como Bootstrap y Tailwind CSS.
Veamos cómo funciona eso en una plantilla.
Instalar Crispy Forms
Comienza por creando un proyecto Django y aplicación Luego instala la última versión de django-crispy-forms usando Pipenv con el siguiente comando:
pipenv instalar Django-crispy-forms
Una instalación exitosa se verá como la imagen a continuación:
Configure django-crispy-forms en la configuración
Después de la instalación, debe registrar formularios crujientes como una dependencia en la configuración del proyecto. Al registrarlo, la biblioteca de formularios crujientes estará disponible para todas las aplicaciones del proyecto.
En el proyecto configuración.py archivo, agregue la cadena 'crispy_forms':
APLICACIONES_INSTALADAS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.archivos estáticos',
'miaplicacion',
'formas_crujientes',
]
Crear un formulario
Debe sincronizar su formulario de registro con el formulario de creación de usuarios incorporado de Django para ayudar con la autenticación.
el incorporado Autenticación de usuario de Django El sistema maneja requisitos comunes como la validación de contraseñas y la emisión de permisos.
El sistema también maneja la validación de formularios por usted. Por lo tanto, puede crear formularios sin la molestia de manejar la validación usted mismo. Si ha realizado la validación de formularios en otros marcos, sabrá lo engorroso que puede ser. No con Django.
El módulo de autenticación tiene un Usuario modelo u objeto. El Usuario El objeto es el componente principal del sistema de autenticación de usuarios. Maneja permisos, autentica perfiles de usuarios registrados, control de acceso y mucho más.
El Formulario de creación de usuario utiliza el incorporado Usuario objeto de registrar nuevos usuarios. Hereda de la clase ModelForm.
Primero, importe formularios desde el módulo de formularios de Django. Luego, importe el Formulario de creación de usuario de django.contrib.auth.forms. Además, importe el incorporado Usuario modelo de django.contrib.auth.modelos. Luego importe las entradas de campo desde django ModelForm.
de Django importar formularios
deDjango.contrib.auth.formulariosimportarFormulario de creación de usuario
deDjango.contrib.auth.modelosimportarUsuario
de django.formas importar Formulario de modelo, entrada de texto, entrada de correo electrónico, campo de imagen, área de texto
A continuación, cree un objeto de registro llamado Formulario de registro de usuario. toma el Formulario de creación de usuario como argumento. Añade el Usuario campos de objetos como autenticación de correo electrónico, nombre de usuario y dos contraseñas.
claseFormulario de registro de usuario(Forma de creación de usuario):
correo electrónico = formularios. Campo de correo electrónico (max_length=254, help_text='Requerido. Introduzca una dirección de correo electrónico válida.')
claseMeta:
modelo = usuario
campos = ('nombre de usuario', 'correo electrónico', 'contraseña1', 'contraseña2')
Estos campos son los atributos principales de un usuario en el formulario de registro. Son entradas obligatorias que los usuarios deben llenar para que el sistema los autentique.
Crear una función de vista
A continuación, creará una función de vista para el formulario de registro. Primero, importe la función de render así como el Formulario de registro de usuario de formularios.py. Luego importa el Usuario modelo de django.contrib.auth.modelos.
La función de vista llamada registro toma la Formulario de registro de usuario. Lo hará en el registro.html plantilla.
de django.atajos importar prestar,
de django.http importar HttpRespuesta, Http404
de .formularios importar Formulario de registro de usuario
deDjango.contrib.auth.modelosimportarUsuario
definitivamenteregistro(pedido):
form=RegisterUserForm
contexto={'forma':forma}
volver renderizar (solicitud,'registro.html',contexto)
Crear ruta de URL
Crear una ruta de URL Para el registro.html plantilla. Esta URL es la ruta de la función de visualización que acaba de crear. Dale el nombre registro, por lo que puede usar el nombre para llamarlo en una plantilla.
de django.urls importar camino
de. importar puntos de vista
urlpatrones=[
camino ('registro', vistas.registrar, nombre='registro'),
]
Cargar en una plantilla
Ahora que tiene la vista y la ruta URL, puede crear el registro.html plantilla en la carpeta de la aplicación. Utilizará django-crispy-forms para representar el Formulario de registro de usuario.
En el registro.html plantilla, extienda la base.html. El base.html contiene el Enlaces de arranque utilizará para diseñar el formulario de registro. Luego cargue los formularios django-crispy con el register.html usando etiquetas de plantilla.
{% extiende 'base.html' %}
{% cargar etiquetas_formuladas_crujientes%}
{% contenido del bloque %}
<clase div="envase" estilo="">
<clase div="fila">
<clase div="col-md-2"></div>
<clase div="col-md-8">
<clase div="tarjeta" estilo="de color negro;">
<clase div="cuerpo de tarjeta">
<clase h5="título de la tarjeta"><a>Regístrese para ser miembro</a><estilo de tramo ="flotar derecho">¿Es usted miembro? <un href="#" clase="texto-primario">Inicia sesión ahora</a></span></h5>
<clase div="texto de la tarjeta">
<acción de formulario ="" método="CORREO" novalidar>
{% csrf_token%}
{{ formulario|crujiente}}
<tipo de botón ="entregar" clase="btn btn-primario btn-sm"> Registro</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% bloque final %}
El formulario incluye la csrf_token, que protege el proceso de registro de los piratas informáticos. Representa el formulario con el mismo nombre de variable que en la función de vista. Luego agregue el |crujiente filtrar a Django {{forma}} variable. Esto hará que la forma sea crujiente.
Ejecute el servidor. Luego, verifique la aplicación en un navegador en http://127.0.0.1:8000/register. Debería ver el formulario que se muestra a continuación:
¡Ha procesado un formulario de registro utilizando formularios crujientes! Tenga en cuenta que Django agregó automáticamente la validación al formulario. Estos incluyen requisitos como permisos de nombre de usuario y contraseña.
Para tener un sistema de registro completo, agregue lógica de autenticación a la función de visualización. También puede agregar una página de inicio de sesión para iniciar sesión de usuarios registrados. Los usuarios deben cumplir con los requisitos de autenticación para iniciar sesión en la aplicación.
La biblioteca django-crispy-forms le permite representar rápida y fácilmente formularios validados. La validación de datos garantiza que tenga datos precisos de sus usuarios.
Los datos resultan útiles a la hora de comunicarse con los usuarios y analizar las métricas de rendimiento.
¿Por qué usar django-crispy-forms?
El uso de la biblioteca de formularios crujientes para representar formularios en Django es un gran ejemplo de cómo aplicar el principio DRY. django-crispy-forms crea componentes reutilizables que puede representar en plantillas.
Vienen con código HTML incorporado. El código le ahorrará la molestia de estructurar y validar formularios. Los formularios crujientes proporcionan una etiqueta y un filtro que representa los formularios en un formato div. También brindan la capacidad de configurar y controlar el HTML renderizado.
django-crispy-forms funciona bien con el sistema de autenticación de Django. Puede crear un sistema de autenticación para verificar a sus usuarios sin escribir mucho código.