0% encontró este documento útil (0 votos)
16 vistas48 páginas

Backend Con Django

Cargado por

lopress284
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas48 páginas

Backend Con Django

Cargado por

lopress284
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 48

BACKEND

DJANGO
Jhonier Ipia
Yeimer Mendez
Contenido
Django Seguridad incorporada
¿Por qué Django? Escalabilidad
Arquitectura MVT Internacionalización
ORM (Object-Relational Documentación y comunidad
Mapping) Django REST Framework
Panel de Administración (DRF)
Autenticación y Manejo de
Conclusion
Usuarios
Middleware y Manejo de
Solicitudes
DJANGO
Características Principales
DRY (Don't Repeat Yourself):
Promueve la reutilización de código.

Principio de "Baterías incluidas":


Ofrece muchas funcionalidades
listas para usar, como
autenticación, manejo de sesiones,
ORM, entre otros. Es uno de los frameworks más utilizados
por su robustez, escalabilidad y
seguridad.
¿POR QUÉ DJANGO?
Ridículamente rápido Extremadamente escalable
Django está diseñado para acelerar el Capaz de manejar altos volúmenes de
desarrollo, ayudando a los tráfico, utilizado por algunos de los sitios
desarrolladores a llevar las aplicaciones más grandes y activos del mundo.
del concepto a la producción en tiempo
récord

Tranquilizadoramente seguro
Django está diseñado para acelerar el
desarrollo, ayudando a los
desarrolladores a llevar las aplicaciones
del concepto a la producción en tiempo
récord
¿ARQUITECTURA MVT?
Patrón de diseño Model-View-Template

Model View Template


Define la estructura y Lógica del negocio que Presentación visual de
comportamiento de los conecta los modelos con los datos al usuario.
datos. las plantillas.

ORM: Gestión de datos: Sistema de plantillas:


Interactúa con la base de Decide qué datos mostrar y Combina HTML con
datos usando objetos cómo procesarlos para los variables y lógica
Python, sin escribir usuarios. básica para mostrar la
consultas SQL. información de manera
efectiva.
MODEL
VIEW
TEMPLATE
TEMPLATE
ORM (Object-Relational Mapping)
Interacción sin SQL directo
El ORM de Django permite gestionar bases de datos
relacionales como PostgreSQL, MySQL y SQLite sin escribir SQL
manualmente.

ORM de
Django

SQL
ORM (Object-Relational Mapping)
Facilidad de Migración
El ORM facilita el cambio entre distintos tipos de bases de
datos sin reescribir consultas.
PANEL ADMIN
PANEL ADMIN
PANEL ADMIN
PANEL ADMIN
PANEL ADMIN
PANEL ADMIN
PANEL ADMIN
PANEL ADMIN
AUTENTICACION Y MANEJO DE
USUARIOS
Registro e inicio de sesión
Sistema listo para gestionar el registro,
login y logout de usuarios.

Manejo de contraseñas y sesiones


Incluye herramientas seguras para almacenar
contraseñas y gestionar sesiones de usuario.

Autenticación personalizada o de terceros


Compatible con autenticación a través de servicios
externos (OAuth, Google, etc.) o esquemas
personalizados.
AUTENTICACION Y MANEJO DE
USUARIOS
Autorización con permisos y roles
Permite definir
permisos por usuario
o grupo, facilitando el
control de acceso a
diferentes partes de
la aplicación.
AUTENTICACION Y MANEJO DE
USUARIOS

Autorización con permisos y roles


AUTENTICACION Y
MANEJO DE USUARIOS
Autorización con permisos y roles
Utilizando el permiso can_edit_task
MIDDLEWARE Y MANEJO DE
SOLICITUDES
MIDDLEWARE Y MANEJO
DE SOLICITUDES
Middleware como capas
de procesamiento
Son capas intermedias que
procesan las solicitudes y
respuestas a nivel global.
MIDDLEWARE Y MANEJO DE SOLICITUDES
Funciones Principales del Middleware
Autenticación: Verificación de usuarios en cada solicitud.

Gestión de sesiones: Mantener el estado de los usuarios en


múltiples solicitudes.

Compresión de respuestas: Reducir el tamaño de las


respuestas para optimizar la velocidad.

Cacheado: Almacenar respuestas para mejorar el


rendimiento.
MIDDLEWARE Y MANEJO DE SOLICITUDES
Autenticación
AuthenticationMiddleware
Agrega un atributo
request.user en cada vista
para identificar al usuario.

request.user
MIDDLEWARE Y MANEJO DE
SOLICITUDES
Gestión de Sesiones
SessionMiddleware
Gestiona
automáticamente las
sesiones, lo que permite
mantener el estado del
usuario entre diferentes
solicitudes request.session.get
SEGURIDAD INCORPORADA

Django proporciona múltiples


protecciones contra:
Secuestro de clics
Scripting entre sitios
Falsificación de solicitud entre sitios
(CSRF)
Inyección SQL
Ejecución remota de código
ESCALABILIDAD

Capacidad de manejar grandes volúmenes de


tráfico: Django es utilizado por gigantes
tecnológicos como Instagram, Pinterest y
Spotify.

Estructura modular: Facilita el manejo de


tráfico elevado.
Compatibilidad con múltiples bases de
datos, sistemas de cacheo y colas de
tareas.
Flexible para escalar y adaptarse a las
necesidades de aplicaciones de cualquier
tamaño.
INTERNACIONALIZACIÓN

Django ofrece soporte completo


para traducir texto a diferentes
idiomas, además de un formato
específico para la configuración
regional de fechas, horas,
números y zonas horarias.
DOCUMENTACIÓN Y
COMUNIDAD
Documentación de alta calidad: Una de
las mejores entre los frameworks web,
lo que hace más sencillo el proceso de
aprendizaje.

Comunidad activa: Un gran número de


desarrolladores contribuyen
continuamente al framework,
manteniendo un ecosistema vibrante y
lleno de recursos útiles.
DJANGO REST FRAMEWORK
(DRF)

Es una poderosa
biblioteca para Django
que facilita la creación
de API RESTful
DJANGO REST FRAMEWORK
(DRF)
Serialización
Vistas y ViewSets
Enrutamiento automático
Autenticación y permisos
Paginación, Filtros y
Búsquedas
SERIALIZACIÓN
Convierte modelos Django en
formatos como JSON o XML.

Serializadores basados
en clases: Definen qué
campos incluir y
permiten personalización
con validaciones
adicionales.
SERIALIZACIÓN
Serializando el modelo Task

El atributo ‘__all__’ indica que vamos a


traer todos los campos que definimos
en el modelo
SERIALIZACIÓN
Validaciones adicionales que podemos incluir en
la clase TaskSerializer.
SERIALIZACIÓN
Validaciones adicionales que podemos incluir en la
clase TaskSerializer.
VISTAS Y VIEWSETS
Extiende las vistas de Django para manejar
operaciones CRUD.

APIView: Para gestionar


la lógica de negocio de
cada método HTTP.
VISTAS Y VIEWSETS
Extiende las vistas de Django para manejar
operaciones CRUD.

ViewSet: Maneja
todas las
operaciones CRUD
sin escribir vistas
para cada acción.
ENRUTAMIENTO AUTOMÁTICO
Uso de enrutadores para enlazar automáticamente
URLs a las vistas API, simplificando la definición de
rutas.
Las ruta generadas por
el enrutador son:

/tasks/ (GET, POST)

/tasks/{id}/ (GET, PUT,


PATCH, DELETE)
AUTENTICACIÓN Y PERMISOS
Soporta autenticación con sesiones, tokens, OAuth2, JWT.
Permisos: Control granular de quién
accede a cada vista o recurso.
PAGINACIÓN, FILTROS Y
BÚSQUEDAS

Para paginar listas


grandes, aplicar
filtros y búsquedas
para mejorar la
usabilidad de la API.
CONCLUSIÓN
CONCLUSIÓN
Django es perfecto cuando deseas construir aplicaciones
web completas con interfaces de usuario, y proporciona una
estructura sólida para la gestión de contenido, usuarios y
datos.

Django REST Framework (DRF) es ideal para proyectos


donde necesitas exponer datos a través de una API REST,
proporcionando una capa eficiente y flexible para
interactuar con clientes externos de manera estructurada y
segura.

Juntos, Django y DRF forman una solución integral para


desarrollar tanto el frontend como el backend de una aplicación
web, o solo el backend para servir datos a otros clientes.
¡GRACIAS!
RECURSOS
Video demo:
https://drive.google.com/file/d/1PQDUiAFZoneC_2uDm
JXfjpJXAYww7N_Q/view?usp=drive_link

Documentacion demo:
https://github.com/Jhonii10/django-
crud/blob/master/backend/README.md
Deploy demo
https://django-crud-two.vercel.app

La primera carga inicial puede tardar hasta un minuto debido a que el servidor web donde se
desplegó el backend gratuitamente después de 15 min de inactividad lo apaga y lo reinicia
después de alguna nueva solicitud.
Bibliografia
Django: https://www.djangoproject.com/
Django restframework: https://www.django-rest-framework.org/
Next.js: https://nextjs.org/
Tailwindcss: https://tailwindcss.com/
Render: https://render.com/
Vercel: https://vercel.com/

También podría gustarte