Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de Desarrollo Backend con Python y Django Rest

DISPONIBLE EN MODALIDAD:
Aprende todo lo necesario para desarrollar Wep APIs mantenibles y extensibles con Django Rest
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en Desarrollo Backend con Python y Django Rest bonificable para empresas

¿A quién va dirigido?

Profesionales backend con experiencia en Python que quieran aprender a desarrollar aplicaciones Api Restful con Django Rest

Objetivos

  • Aprender los fundamentos del framework Django para crear aplicaciones web
  • Deasrrollar aplicaciones Web API con Django Rest, además de aprender a documentarlas
  • Gestionar y administrar el modelado de datos, sistema de enrutado y seguridad en aplicaciones Django
  • Aplicar buenas prácticas de arquitectura y testing
  • Gestionar y administrar builds y despliegues

¿Qué vas a aprender?

Aprende todo lo necesario para desarrollar Wep APIs mantenibles y extensibles con Django Rest

Requisitos

  • Experiencia previa desarrollando con Python (v3 o superior)
  • Son necesarios permisos de instalación en el equipo en el que se realice la formación
  • Tener Python (v3 o superior), Visual Studio Code o Pycharm instalados, para crear proyectos Django, en el equipo previamente
  • Tener Git y Docker Desktop instalados previamente

Temario del curso

tema 1

Introducción Django Rest

  • ¿Qué es Django Rest?
  • Django Rest en la actualidad y tipos de proyectos más destacables
  • Diferencias sustanciales con FastAPI y Flask como alternativas a Django Rest
  • Instalación de Python en su versión LTS de manera oficial
  • Verificando la versión de Python instalada en el equipo
  • ¿Es posible tener varias versiones de Python instaladas en un equipo?
  • Creación de tu primer proyecto Django Rest desde Pycharm
  • Instalación de Django Rest con PIP
  • Estableciendo librerías instaladas en requirements.txt
  • Hola Mundo en Django Rest
  • Estableciendo la ruta base de nuestra web API
  • Plugins imprescindibles y recomendados de Pycharm
  • Ejecución local del proyecto Django Rest
  • Accediendo por navegador a la ruta base del proyecto
  • Otros IDEs con los que podemos desarrollar con Django Rest
  • Entornos de Desarrollo Online: Replit.com
  • Creación de cuenta en Replit.com
  • Creación de un proyecto Django Rest en Replit.com a partir de plantillas disponibles
  • Escribiendo tu primer "Hola Mundo" en proyecto Django Rest de Replit.com
  • Ejecutando el archivo main.py desde entorno Replit.com
  • Compartiendo proyecto Replit
  • Integración de Replit.com con Github
  • Descargando proyecto Replit en formato .ZIP
  • Creación de plantilla de proyectos Django Rest para Github
  • Empleando la plantilla para nuevos proyectos Django Rest
tema 2

Desarrollo de Web APIs con Django Rest

  • Creación y configuración del archivo principal de Django Rest
  • Creación de la ruta base de nuestro proyecto Django Rest
  • Especificando el puerto de despliegue
  • Especificando respuestas JSON
  • Especificando el código de estado a nuestra respuesta
  • Desplegando la aplicación y accediendo desde el navegador
  • Iniciando Postman y probando la ruta base del proyecto
  • Introducción a la estructura de proyectos Django Rest
  • Introducción a las variables de entorno
  • Estableciendo archivos de variables de entorno
  • Declaración de variables de entorno
  • Configuración de archivo .gitignore
  • Publicando proyecto Django Rest en Github
  • Estableciendo ramas de desarrollo y producción
tema 3

Peticiones, Sistema de Enrutado, Controladores y Respuestas

  • Análisis de los verbos HTTP: GET, POST, PUT y DELETE
  • Otros verbos HTTP y sus utilidades
  • Recibiendo peticiones desde un cliente
  • Especificando una ruta "/api" como base para nuestro proyecto
  • Declaración de rutas en un proyecto Django Rest
  • Declarando una misma ruta para distintos verbos
  • Accediendo a la cabecera de la petición
  • Accediendo al cuerpo de la petición
  • Configurando la respuesta al cliente
  • Distintos tipos de respuestas: Texto, JSON y HTML
  • Recepción de parámetros por Query Params
  • Redirección de rutas
  • Estructura de proyectos Django Rest
  • ¿Qué es un controlador?
  • Declaración de controladores en proyectos Django Rest
  • Indicando el uso de un controlador
  • Depurando la ejecución de un controlador
  • Reutilización de controladores
  • Buenas prácticas en la estructuración de rutas y controladores
tema 4

Gestión de Peticiones y respuestas CRUD

  • Estableciendo una base de datos lite como introducción
  • Creación de rutas para peticiones de Creación (C)
  • Códigos de estado para creaciones exitosas y erróneas
  • Redirección de rutas para devolver elemento creado correctamente
  • Creación de rutas para lectura y consultas con Query Params (R)
  • Códigos de estado para lecturas exitosas y erroróneas
  • Creación de rutas para peticiones de Actualización (U)
  • Códigos de estado para actualizaciones exitosas y erroróneas
  • Creación de rutas para peticiones de Borrado (D)
  • Códigos de estado para borrados exitosos y erroróneas
tema 5

Persistencia en bases de datos relacionales: PostgreSQL

  • Introducción a bases de datos relacionales
  • Instalación y configuración básica de PostgreSQL
  • Iniciando servidor PostgreSQL localmente
  • Usando herramientas de vislauzación de datos de PostgreSQL: BeeKeeper
  • Configuración en proyecto Django Rest para conexión con PostgreSQL
  • ¿Qué es un ORM? Ventajas e inconvenientes.
  • Utilización de un ORM (Sequelize)
  • Operaciones CRUD en proyecto Django Rest con PostgreSQL como base de datos
  • Dockerización de proyecto Django Rest con PostgreSQL
  • Introducción a Render como solución cloud
  • Creación de una cuenta gratuita en Render
  • Creación y configuración básica de una base de datos PostgreSQL en Render
  • Conexión desde Django Rest con PostgreSQL de Render
  • Añadiendo variables de entorno al proyecto para las conexiones y api keys
tema 6

Persistencia en bases de datos NoSQL: MongoDB

  • Introducción a bases de datos no relacionales
  • Breve introducción a MongoDB
  • Colecciones y documentos BSON
  • Instalación y configuración básica de MongoDB
  • Iniciando servidor MongoDB localmente y especificando ubicación "dbpath"
  • Iniciando Mongo Shell como cliente
  • Introducción a Mongo Compass
  • Iniciando Mongo Compass para visualizar bases de datos y colecciones
  • Accediendo a Mongo Shell desde Mongo Compass
  • Validación y modelado de datos
  • ¿Qué es un ODM?
  • Ventajas e inconvenientes en el uso de ODMs
  • Utilización de un ODM (Mongoose)
  • Operaciones CRUD en proycto Django Rest con MongoDB como base de datos
  • Dockerización de proyecto Django Rest con MongoDB
  • Introducción a Mongo Atlas como solución cloud
  • Creación de una cuenta gratuita en MongoDB para usar Mongo Atlas
  • Creación y configuración básica de una base de datos MongoDB en Mongo Atlas
  • Conexión desde Django Rest con Mongo DB Atlas
  • Añadiendo variables de entorno al proyecto para las conexiones y api keys
tema 7

Middlewares

  • ¿Qué es un Middleware y qué uso podemos darle?
  • Declarando Middlewares en un proyecto Django Rest
  • Espeficicando el uso de un Middleware en una ruta de nuestro proyecto
  • Depuración de código middleware
  • Redirección de rutas
  • Buenas prácticas en la gestión de Middlewares
tema 8

Autenticación y autorización

  • Middlewares de autenticación
  • Introducción a JWT y a los Bearer Tokens
  • Configuración de Middleware y rutas para autenticación por JWT
  • Controlando los JWT emitidos por el cliente en las cabeceras
  • Controlando las sesiones de usuario y caducidad de los JWT
  • Añadiendo un sistema RBAC para controlar el acceso
  • Introducción al sistema de autenticación OAuth
  • Diferencias entre OAuth y OAuth2
  • Configuración de Middleware y rutas para autenticación por OAuth
  • Controlando las sesiones de usuario de OAuth
  • Persistiendo la información de sesiones en bases de datos
  • Introducción a la autenticación con redes sociales
  • Realizando pruebas de autenticación y protección de rutas
tema 9

Gestión de Errores desde el Servidor

  • Análisis de los códigos de estado HTTP en las respuestas
  • Códigos de estado de Error más comunes
  • ¿Cómo transmitir un error al cliente?
  • Gestión de errores 300
  • Gestión de errores 400
  • Gestión de errores 500
tema 10

Documentación de proyecto Django Rest con Swagger

  • Documentando la puesta en marcha de un proyecto Django Rest en un README.md
  • Introducción a OpenAPI y a Swagger
  • Instalación y configuraciones esenciales
  • Documentación de modelos
  • Documentación de rutas y controladores
  • Añadiendo comentarios para mayor información
  • Script de generación de documentación Swagger y despliegue
  • Visualización de documentación vía web
  • Realizando pruebas de peticiones desde la documentación generada
tema 11

Consideraciones de seguridad en aplicaciones Django Rest

  • ¿Qué es CORS y por qué debemos configurarlo?
  • Configuración recomendada de CORS
  • Problemas derivados de una mala configuración de CORS
  • ¿Cómo habilitar HTTPS localmente?
  • Trabajando con certificados localmente
  • Desplegando en https un proyecto local
  • Módulos vulnerables y desactualizados en Python que pueden afectarnos
  • Protección ante ataques de fuerza bruta
  • Protección ante ataques de denegación de servicios
  • Protección ante ataques de SQL Injection
  • Protección ante ataques de JSON Injection
  • Uso seguro de cookies y protección ante ataques CSRF
tema 12

Logs, health checks y monitorización

  • La importancia del buen uso de logs en aplicaciones web
  • Soluciones de Logs disponibles para Django Rest
  • Instalaciones y configuraciones en Django Rest para gestión de logs
  • Herramientas más interesantes de análisis de logs disponibles en el mercado
  • Emisión de logs desde nuestra aplicación
  • Niveles de logs y buenas prácticas
  • Persistiendo logs en una tabla de la base de datos
  • ¿Qué son los health checks y por qué debemos realizarlos?
  • Creación de health checks para aplicaciones Django Rest
  • Introducción a la monitorización de aplicaciones web
  • Herramientas más interesantes para la monitorización de recursos y rendimiento
  • Habilitando la monitorización de una aplicación Django Rest
tema 13

Comunicación en tiempo real

  • ¿Qué son los WebSockets y para qué sirven?
  • Introducción a Socket IO y sus fundamentos
  • Instalación y configuración de Socket IO
  • Implementación de websockets
  • Comprobando la comunicación bidireccional
tema 14

Builds y Despliegues

  • Analizando el proceso de builds y entornos en Django Rest
  • Configuración y definición de carpeta para builds en Django Rest
  • Creación de Scripts de builds para distintos entornos
  • Análisis de resultado de una build
  • Creación de un proyecto Django Rest en Render
  • Asociando un proyecto Render a una rama de repositorio Github
  • Configuración y scripts para el despliegue de proyectos Python en Render
  • Configurando variables de entorno y api keys en el proyecto Render
  • Automatizando la integración (CI) desde Render
  • Comprobando despliegues y probando la aplicación Django Rest en producción
  • Gestión de errores, rollbacks y redespliegues en Render

Curso de Desarrollo Backend con Python y Django Rest bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient