Fundamentos de Django

1

Entornos Virtuales con Python: Gesti贸n y Creaci贸n Eficaz

2

Django: Creaci贸n de Proyectos y Configuraci贸n Inicial

3

Modelos, Vistas y Templates en Django: Fundamentos Esenciales

4

Desarrollo de Aplicaciones Web con Django: Modelos, Vistas y Templates

La M en el Patr贸n: Modelo

5

Modelos y Migraciones en Django ORM

Manejo Avanzado de Modelos y Bases de Datos

6

Migraciones de Django: Creaci贸n y Aplicaci贸n en Base de Datos

7

Campo opcional en Django: manejo de bases de datos

8

Modificaci贸n y Eliminaci贸n de Datos en Django

Relaciones y Asociaciones entre Modelos

9

Relaciones de Tablas en Django: Clave For谩nea y Cascade

10

Relaciones de Muchos a Muchos en Bases de Datos

11

Relaciones 1 a 1 en Django: Modelos y CRUD B谩sico

12

Uso de Managers en Django para Consultas de Modelos

Configuraci贸n de URLs y Vistas Avanzadas

13

"URLs din谩micas en Django: Manejo de rutas y par谩metros"

14

Vistas Basadas en Clases en Django: Inicio y Configuraci贸n

La T en el Patr贸n: Plantillas o Templates

15

Django Templates: Variables, Filtros y Tags

Desarrollo de Aplicaciones en Django

16

Configuraci贸n y Uso de Entornos Virtuales y Django en Proyectos Python

17

Modelado de Productos en Django: Campos y Configuraci贸n

18

Validaci贸n de im谩genes con Pillow en Django

19

Creaci贸n de Formularios en Django: Gu铆a Pr谩ctica

20

Lista de Productos con Django y Tailwind CSS

21

Registro de Modelos en el Administrador de Django

22

Login y Registro de Usuarios con Django

23

Creaci贸n de Modelos y Vistas en Django para Aplicaciones Web

24

Desarrollo de Vistas Gen茅ricas en Django

25

Correcci贸n de Bugs con Queries en Django

26

Manipulaci贸n de Formularios en Django: Creaci贸n y Configuraci贸n

Django Rest Framework

27

Creaci贸n de APIs con Django REST Framework

Despliegue de aplicaciones Django

28

Configuraci贸n de Django con PostgreSQL para Producci贸n

29

Protecci贸n de Datos Sensibles con Django Environ

30

Pruebas Unitarias con Django: Validaci贸n de Listas y Redirecciones

31

Despliegue de Aplicaciones Django en AWS Paso a Paso

32

Desplegar Aplicaciones Django en AWS Elastic Beanstalk

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Django

Curso de Django

Luis Mart铆nez

Luis Mart铆nez

Login y Registro de Usuarios con Django

22/32
Recursos

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

  1. Instala Crispy Tailwind en tu proyecto para utilizar estos estilos en los formularios.
pip install django-crispy-forms[>=1.14.0]<2.0 crispy-tailwind
  1. A帽ade los crispy_forms y crispy_tailwind a Installed Apps.
  2. Utiliza <form method="POST">{% crispy form %}</form> en tus templates para aplicar estilos autom谩ticamente.

驴C贸mo configurar redirecci贸n y autenticaci贸n en Django?

La configuraci贸n de redirecci贸n es crucial para guiar correctamente a los usuarios despu茅s del login.

  • Configura LOGIN_REDIRECT_URL en Settings.py para determinar la URL de destino tras un login exitoso.
  • Cambia el m茅todo del formulario a POST y asegura la seguridad con {% csrf_token %}.

驴C贸mo mostrar mensajes personalizados para usuarios loggeados?

Personalizar la interfaz dependiendo del estado del usuario mejora la interactividad de tu aplicaci贸n.

{% if user.is_authenticated %}
  <p>Hola, {{ user.username }}</p>
{% else %}
  <a href="{% url 'login' %}">Login</a>
{% endif %}
  • 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!

Aportes 17

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Login de CoffeShop, usando Cispy Bootstrap 5 ![](https://static.platzi.com/media/user_upload/image-ace58329-7380-406c-85cc-99bdd2b8893b.jpg)
Usando tailwind y modelos de hyperui ![](https://static.platzi.com/media/user_upload/image-7fa7db7d-f099-4a62-8304-72ce8a137317.jpg)
no se mucho pero pues con ayuda de gpt y esta clase logre lo siguiente ![](https://static.platzi.com/media/user_upload/image-c80e3366-0473-4e01-b5d9-eb59e5c55a14.jpg)
Para cuando el resumen? es de gran ayuda para estar guardando los apuntes
Tomando forma: ![](https://static.platzi.com/media/user_upload/Screenshot%202024-09-28%20at%2010.21.56AM-c421298c-8d6f-4af0-8043-639c5f93770b.jpg)
![](https://static.platzi.com/media/user_upload/image-eb16499e-569d-4c4c-814d-b4167cdda59c.jpg)
![](https://static.platzi.com/media/user_upload/image-6e783432-d9d0-480b-9716-02bab8c94ad7.jpg) Usando Tailwind y free open source tailwind
Para el logout agregu茅 en settings.py: LOGOUT\_REDIRECT\_URL = "login" en urls.py: ```python from django.contrib.auth.views import LoginView, LogoutViewfrom django.urls import path urlpatterns = \[ path("login/", LoginView.as\_view(template\_name="users/login.html"), name="login"), path("logout/", LogoutView.as\_view(), name="logout"),] ``` login.html: ```html {% extends "base.html" %} {% load tailwind\_filters %} {% block content %}\<h1 class="text-2xl font-bold text-gray-900 sm:text-3xl mb-5">Iniciar sesi贸n\ {% if user.is\_authenticated %} \

Hola, {{user.username}}\

{% endif %} \<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>{% endblock content %} ``` en product\_list.html agregu茅 un footer: ```html \<footer class="bg-gray-200"> {% if user.is\_authenticated %} \<form action="{% url "logout" %}" method="post"> {% csrf\_token %} \<button type="submit">Logout\</button> \</form> {% endif %}\</footer> ```
**mi soluci贸n al reto** Primero, en urls.py hice accesible la vista: path('logout/', CustomLogoutView.as\_view(), name = "logout"), Segundo, en views.py cre茅 la classview: ```python from django.contrib.auth.views import LogoutView class CustomLogoutView(LogoutView): # cerrar sesi贸n template_name = "registration/logout.html" `````` Finalmente, en el base.html puse: ```python
<form method="post" action="{% url 'logout' %}"> {% csrf_token %} <button type="submit" class="btn-logout">Cerrar sesi贸n</button> </form>
`````` Ya con eso, me funciona y elimina la cookie
cerra sesion me toco con una funcion portq con la clase logoutview no me dejaba ```python 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_required def logout_view(request): logout(request) return redirect('login') ```
reto de la clase ![](https://static.platzi.com/media/user_upload/upload-4219619f-ee1f-4e2f-b4ad-81501ef61f4b.png)
Alguien pudo crear la vista LogoutView?, a mi me sale error 405, debido a que se necesita que el metodo de la solicitud sea POST pero se manda con GET. No lo puedo solucionar,
![](https://static.platzi.com/media/user_upload/image-57bc9ab9-fa9e-430e-a166-10c085de4073.jpg)
GitHib de django-crispy-forms: <https://github.com/django-crispy-forms/> Instalaci贸n de crispy-tailwind: `pip install crispy-tailwind`
![](https://static.platzi.com/media/user_upload/imagen-cb49bcda-b312-42f4-a22e-d43b6b23aecc.jpg)
As铆 qued贸 mi Login. Lo mejorar茅 apenas termine el curso.
buenos d铆as una pregunta como hago para configurar la extenci贸n de Django templates y que no pierda el auto compltado de html, ya que apenas instalo la extenci贸n en menci贸n se me pierde todo los tag de html, css3 y javascript de mi editor, gracias