Imagen del curso gratis Python y Django 3: De Cero a Proyecto Real (CRUD, Ajax, Reportes, PDFs, Auth)

Curso en línea gratuitoPython y Django 3: De Cero a Proyecto Real (CRUD, Ajax, Reportes, PDFs, Auth)

Duración del curso en línea: 22 horas y 8 minutos

Nuevo

Desarrolla una app web profesional con Python y Django: CRUD, Ajax, reportes y PDFs. Curso online gratis para mejorar tu perfil backend.

En este curso gratuito, aprenda sobre

  • Instalar Python y configurar PyCharm y entornos para desarrollar con Django
  • Crear proyectos Django desde IDE y consola (django-admin startproject) y correr el server
  • Configurar settings y bases de datos: SQLite y PostgreSQL
  • Modelado con Django Models y relaciones (ForeignKey, on_delete=CASCADE)
  • Uso del ORM: CRUD, filtros y lookups como icontains (case-insensitive)
  • Control de versiones con Git aplicado a un proyecto Django
  • Admin site: crear superuser y administrar modelos desde el panel
  • Rutas, vistas y templates; render/contexto y herencia de plantillas
  • Manejo de estáticos y media: STATICFILES_DIRS, STATIC_ROOT y subida por Ajax (FormData)
  • CBVs: ListView/CreateView/UpdateView/DeleteView/FormView/LoginView y success_url
  • Ajax + DataTables/Select2: endpoints JSON, blocks extra, safe=False y modals responsivos
  • Autenticación, permisos y mixins: login_required, PermissionRequiredMixin, next/LOGIN_URL
  • Flujo de facturación: cabecera+detalle en JS, totales, edición, y transacciones (atomic)
  • Reportes, gráficos y PDFs (xhtml2pdf/WeasyPrint): filtros, agregaciones y JSON por POST

Descripción del curso

Impulsa tus habilidades de desarrollo backend aprendiendo a construir una aplicación web completa con Python y Django 3, llevándola desde la configuración inicial hasta un proyecto funcional listo para usar en escenarios reales. Este curso online gratis está orientado a quienes quieren dominar el flujo de trabajo típico en proyectos profesionales: organizar un entorno de desarrollo, estructurar una aplicación con buenas prácticas y avanzar paso a paso hasta obtener un sistema con gestión de datos, interfaz dinámica y funcionalidades avanzadas.

A lo largo del recorrido trabajarás con la arquitectura de Django, el uso del ORM para interactuar con la base de datos y la creación de secciones clave dentro de una aplicación: administración, enrutamiento, vistas y templates. Además, podrás fortalecer tu experiencia construyendo listados eficientes con tablas avanzadas, configurando recursos estáticos y mejorando la experiencia del usuario con interacciones sin recarga gracias a Ajax.

El proyecto pone foco en el desarrollo de operaciones esenciales de cualquier sistema: crear, editar, eliminar y listar registros con formularios y validaciones, incluyendo personalización de interfaces y envío de información de forma asíncrona. También se abordan integraciones habituales en productos reales, como componentes de búsqueda y autocompletado, formularios con carga de archivos y selectores avanzados que mejoran la usabilidad en dashboards y paneles internos.

En la parte de gestión de acceso, aprenderás a implementar autenticación con vistas genéricas, control de sesiones y protección de rutas, además de manejar permisos, grupos y roles para construir un sistema más seguro y escalable. Complementarás esto con patrones reutilizables para validaciones, como mixins y decoradores, útiles para mantener el código limpio y consistente en aplicaciones en crecimiento.

Como cierre, el curso te guía para agregar características que elevan cualquier proyecto: generación de reportes, gráficos, exportación y restauración de datos, y creación de documentos PDF para casos como facturación. Verás cómo integrar estas salidas dentro de los flujos del sistema, preparando una base sólida para llevar tu propio proyecto a producción o enriquecer tu portafolio con una aplicación completa.

Si buscas una ruta práctica para consolidar Django con un enfoque de proyecto real, este curso te ayudará a conectar las piezas fundamentales del framework con herramientas comunes del ecosistema web, mejorando tu capacidad para desarrollar aplicaciones robustas en el ámbito de la programación y TI.

Contenido del curso

  • Lección en vídeo: Curso de Django 3 | Introducción del Curso | Video 1 00m
  • Lección en vídeo: Curso de Django 3 | Instalación de Python | Video 2 01m
  • Lección en vídeo: Curso de Django 3 | Instalación de Pycharm | Video 3 02m
  • Ejercicio: ¿Cuál es el beneficio principal mencionado de usar PyCharm para trabajar con Python y Django durante el curso?
  • Lección en vídeo: Curso de Django 3 | Creación de nuestro primer proyecto con Django | Video 4 03m
  • Lección en vídeo: Curso de Django 3 | Crear un proyecto con Django desde el cmd de windows | Video 5 09m
  • Ejercicio: ¿Qué comando se utiliza para crear el proyecto de Django desde la consola una vez instalado Django y activado el entorno virtual?
  • Lección en vídeo: Curso de Django 3 | Settings | Configurando nuestra base de datos SQLite | Video 6 10m
  • Lección en vídeo: Curso de Django 3 | Settings | Configurando nuestra base de datos PostgreSQL | Video 7 05m
  • Lección en vídeo: Curso de Django 3 | Models | Parte I | Video 8 25m
  • Lección en vídeo: Curso de Django 3 | Models | Parte II | Video 9 07m
  • Ejercicio: En Django, ¿qué ocurre cuando defines un campo ForeignKey con on_delete=models.CASCADE?
  • Lección en vídeo: Curso de Django 3 | ORM | Parte I | Video 10 13m
  • Lección en vídeo: Curso de Django 3 | ORM | Parte II | Video 11 08m
  • Ejercicio: En el ORM de Django, ¿qué lookup se utiliza para hacer una búsqueda que ignore mayúsculas/minúsculas (similar a LIKE pero case-insensitive)?
  • Lección en vídeo: Curso de Django 3 | Git | Control de versiones de tu código | Video 12 11m
  • Lección en vídeo: Curso de Django 3 | Panel administrador | Create superuser | Video 13 07m
  • Lección en vídeo: Curso de Django 3 | URLs | Configuración | Mi primera view | Video 14 09m
  • Lección en vídeo: Curso de Django 3 | Templates | Parte I | Video 15 07m
  • Lección en vídeo: Curso de Django 3 | Templates | Parte II | Video 16 12m
  • Lección en vídeo: Curso de Django 3 | Archivos estáticos | Configuración | Video 17 10m
  • Ejercicio: ¿Qué configuración se usa para indicarle a Django dónde buscar los archivos estáticos del proyecto (además de STATIC_URL)?
  • Lección en vídeo: Curso de Django 3 | Templates | Integrando la plantilla adminLTE3 | Video 18 12m
  • Lección en vídeo: Curso de Django 3 | Creando nuestro primer listado en django | Video 19 17m
  • Ejercicio: En un listado de categorías en Django, ¿qué se utiliza para renderizar una plantilla y enviarle el título y el queryset de categorías desde una vista basada en función?
  • Lección en vídeo: Curso de Django 3 | ListView | Vistas basadas en clases | Video 20 09m
  • Lección en vídeo: Curso de Django 3 | ListView | Implementando datatables | Video 21 13m
  • Ejercicio: Al integrar DataTables en un listado de Django, ¿qué se debe hacer en la plantilla base para poder cargar correctamente los archivos CSS/JS de la librería desde un template hijo?
  • Lección en vídeo: Curso de Django 3 | Sobreescritura del método dispatch | Vistas basadas en clases | Video 22 05m
  • Lección en vídeo: Curso de Django 3 | Implementando decoradores | Vistas basadas en clases | Video 23 03m
  • Ejercicio: ¿Cuál es el propósito principal de un decorador en Django/Python al trabajar con vistas basadas en clases?
  • Lección en vídeo: Curso de Django 3 | Sobreescritura del método post | Vistas basadas en clases | Video 24 04m
  • Lección en vídeo: Curso de Django 3 | Ajax básico | post | Vistas basadas en clases | Video 25 13m
  • Ejercicio: ¿Cuál es la principal ventaja de usar Ajax al enviar un POST a una vista basada en clases en Django?
  • Lección en vídeo: Curso de Django 3 | CreateView | Creando nuestro primer formulario | Parte I | Video 26 15m
  • Lección en vídeo: Curso de Django 3 | CreateView | Personalizando nuestro formulario | Parte II | Video 27 16m
  • Ejercicio: En Django, ¿qué mecanismo permite personalizar los atributos HTML (por ejemplo, class, placeholder, autocomplete) de los campos de un ModelForm de forma declarativa?
  • Lección en vídeo: Curso de Django 3 | CreateView | Validaciones en nuestro formulario | Parte III | Video 28 18m
  • Lección en vídeo: Curso de Django 3 | CreateView | Implementando ajax para el envío de datos | Video 29 25m
  • Ejercicio: En un formulario enviado por Ajax en Django, ¿para qué se agrega un campo oculto llamado "action"?
  • Lección en vídeo: Curso de Django 3 | UpdateView | Editando un registro | Video 30 09m
  • Lección en vídeo: Curso de Django 3 | DeleteView | Eliminando un registro | Video 31 06m
  • Ejercicio: En una vista basada en clase para eliminar (DeleteView) en Django, ¿para qué se configura el atributo success_url?
  • Lección en vídeo: Curso de Django 3 | DeleteView | Implementando ajax para el eliminar un registro | Video 32 06m
  • Lección en vídeo: Curso de Django 3 | ListView | Cargar datos en mi tabla con ajax y datatable | Video 33 17m
  • Ejercicio: En Django, al devolver una colección (lista) en un JsonResponse para cargar DataTables vía Ajax, ¿qué configuración es necesaria para que la respuesta no falle?
  • Lección en vídeo: Curso de Django 3 | Puliendo nuestro proyecto | Video 34 03m
  • Lección en vídeo: Curso de Django 3 | TemplateView | Creando nuestro index | Video 35 06m
  • Lección en vídeo: Curso de Django 3 | FormView | Vistas basadas en clases | Video 36 11m
  • Lección en vídeo: Curso de Django 3 | LoginView | Vistas basadas en clases | Video 37 16m
  • Ejercicio: En una implementación con la vista genérica LoginView, ¿qué configuración se usa para definir a qué URL redirigir tras un inicio de sesión exitoso?
  • Lección en vídeo: Curso de Django 3 | FormView | Inicio de sesión | Video 38 05m
  • Lección en vídeo: Curso de Django 3 | LogoutView | RedirectView | Vistas basadas en clases | Video 39 10m
  • Lección en vídeo: Curso de Django 3 | Validando nuestras vistas (login_required, next, LOGIN_URL) | Video 40 07m
  • Lección en vídeo: Curso de Django 3 | Implementando alertas en nuestro formulario con jquery-confirm | Video 41 09m
  • Ejercicio: ¿Cuál es el objetivo principal de integrar el plugin de alertas antes de ejecutar el envío con Ajax?
  • Lección en vídeo: Curso de Django 3 | Media Files | Parte I | Video 42 12m
  • Lección en vídeo: Curso de Django 3 | Media Files con ajax | Parte II | Video 43 10m
  • Ejercicio: Al enviar un formulario con archivos (imágenes) mediante Ajax en Django, ¿qué objeto se utiliza para incluir tanto campos de texto como de tipo file?
  • Lección en vídeo: Curso de Django 3 | Select anidados con ajax | Video 44 16m
  • Lección en vídeo: Curso de Django 3 | Select anidados con select2 | Video 45 12m
  • Ejercicio: Al usar Select2 para cargar datos en un