Creación de Login y Registro de Usuarios en Django
Resumen
¿Cómo crear una aplicación de usuarios en Django?
Crear una aplicación de usuarios en Django puede parecer una tarea compleja al principio, pero no te preocupes, ¡es más sencillo de lo que parece! Django nos proporciona herramientas robustas y listas para utilizar, facilitando la implementación de la administración de usuarios, como el registro y login. En este paso a paso, te mostraré cómo separar tus aplicaciones por dominios, registrarlas correctamente y utilizar herramientas innovadoras para estilizar tus formularios.
¿Cómo separar aplicaciones por dominios en Django?
Lo primero que debes saber es que la organización de tus proyectos en Django por dominios es fundamental para asegurar un código limpio y mantenible. Esto significa que cada aplicación dentro de tu proyecto debe tener una responsabilidad específica.
Crea una nueva aplicación de Django usando el comando Manage startapp Users.
Registra la nueva aplicación en el archivo Settings.py dentro del diccionario Installed Apps.
Crea un archivo urls.py para manejar las rutas específicas de la nueva aplicación Users.
¿Cómo usar las vistas integradas de Django para usuarios?
Django ofrece múltiples vistas listas para ser utilizadas, que simplifican el manejo de usuarios.
from django.contrib.auth.views import LoginView
urlpatterns =[ path('login/', LoginView.as_view(template_name='users/login.html'), name='login'),]
Crea un template HTML dentro de una carpeta templates/users para personalizar la vista de login.
Extiende este template desde un archivo base para reutilizar estilos y configuraciones.
¿Cómo estilizar formularios con Crispy Forms y Tailwind?
Personalizar la apariencia de los formularios puede hacer una gran diferencia en la experiencia del usuario.
Instala Crispy Tailwind en tu proyecto para utilizar estos estilos en los formularios.
Usa plantillas base para mostrar el nombre de usuario si el usuario está autenticado.
Proporciona accesos rápidos para login o logout dependiendo del estado.
¿Cómo implementar un sistema de logout con Django?
Django simplifica la creación de una vista de logout mediante LogoutView.
Define una URL y asigna la vista LogoutView.
Añade un enlace de logout en tu template que condicione su visibilidad al estado autenticado del usuario.
¡Felicitaciones! Ahora tienes una aplicación de usuarios completamente funcional en Django, desde el login, estilos de formularios, hasta la administración de sesiones. Explora más en la documentación e implementa características adicionales. ¡El único límite es tu creatividad!
Hola, ¿qué tal disculpa me gustaría saber como puedo agregar la imagen, tengo es estilo, pero nada que doy con la ruta o si toca otra configuración?
Usando tailwind y modelos de hyperui
no se mucho pero pues con ayuda de gpt y esta clase logre lo siguiente
Para cuando el resumen? es de gran ayuda para estar guardando los apuntes
Tomando forma:
asi quedo mi pantalla de login
y asi quedo mi boton de logout, solo lo apunte hacia la pantalla de login nuevamente.
Login con Tailwind, saque el componente de
Hi Guys, \nIt is Mine!
Register aun no tiene utilidad, pero ahí vamos
Está tomando buen rumbo el diseño!
Casi muero pero lo logre:
La primera mitad del curso me costó mucho, pero poco a poco fluyendo
Y qué lindo que te va quedando el login, ¿te ha gustado más el frontend o el backend?
Solución del Reto
Desde users.urls.py se importa LogoutView, y dentro de la lista de urls se agrega:
path("ENDPOINT/", LogOutView.as_view(next_page"PATH_NAME"), name="logOut"))```Importante agregar el argumento \<form action="" method="post">{% csrf\\\_token %}{{ form|crispy }} \\\<button class="inline-block rounded-sm border border-indigo-600 bg-indigo-600 px-12 py-3 text-sm font-medium text-white hover:bg-transparent hover:text-indigo-600 focus:ring-3 focus:outline-hidden"type="submit"> Login \\\</button>\\\</form>`next_page` dentro de la vista.Por ultimo, en el template debemos poner el LOGOUT como sí fuera un formulario, ya que hacemos una petición al servidor, el metodo debe ser POST
```html
<form action="{% url "logOut" %}" method="post">{% csrf\_token %}<button type="submit">LogOut</button></form>
Tengo el código tal cual lo hicieron pero me sale un erro 404, hasta la clase anterior todo bien, pero ya no. No puedo pasar del minuto 3. ¿Alguien que pueda ayudarme?
Estamos en las mismas :(
Recuerda colocar todo las '/' al final de login debes colocar '/' ojala te pude ayudar
cerra sesion me toco con una funcion portq con la clase logoutview no me dejaba
urlpatterns =[ path('login/', LoginView.as_view(template_name='users/login.html'), name='login'), path('logout/', logout_view, name='logout')]```en views quedo asi```python
from django.shortcuts import render
from django.contrib.auth import logout
from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required
@login_requireddeflogout_view(request): logout(request)return redirect('login')
Para el logout agregué en settings.py: LOGOUT_REDIRECT_URL = "login"