Flask y Python Web Desde Cero: APIs REST
Construye aplicaciones profesionales con Flask, SQLAlchemy, Jinja2, Bootstrap, Vue, Flask-Login, JWT, Socket IO y +
Lo que serás capaz de hacer
En este curso aprenderás a trabajar con el framework PHP Flask 3 desde cero; cuando termines el curso podrás crear aplicaciones en este framework básicas y no tan básicas de manera fluida. Tendrás una idea clara de cómo atacar cualquier proyecto para el consumo y gestión de contenido por Internet, desarrollar los componentes fundamentales de una aplicación tipo Blog o de gestión; y mediante websockets con Flask-SocketIO vas a aprender a crear aplicaciones FullDuplex tipo chat. Vas a aprender a crear apps tradicionales con módulo administrador Creando CRUDs manuales y empleando el paquete de Flask admin, conocer los componentes base del framework como librerías, funciones de ayuda, manejo del MVC, creación de Rest Apis hechas a medias, consumirlas mediante Vue y adaptar tus proyectos con otras tecnologías como Bootstrap 4 o 5. ***IMPORTANTE*** Nosotros vamos a tratar múltiples tecnologías en este curso, pero centrándonos en el framework de Flask 3 que es nuestro principal caso de interés, por lo tanto, emplearemos y explicaremos estas tecnologías relacionadas como Bootstrap en cualquiera de sus versiones hasta que sea necesario sin profundizar completamente en estas tecnologías relacionadas. En el caso de Flask, fué creado empleando la versión 1.1, pero lo presentado en el curso funciona para la versión 3 a la perfección. En el caso de Bootstrap, el curso fue grabado con Bootstrap 4 pero se van dando pequeños tips para adaptar el desarrollo a Bootstrap 5 en donde sea necesario. ¿Qué aprenderemos? A nivel técnico aprenderás ha trabajar con las siguientes características en Flask: Sobre Flask Requerimientos de Flask y software a emplear Primeros pasos con Python Crear espacios virtuales e instalar paquetes Instalar Flask mediante la PIP Explicar y crear la estructura de un proyecto en Flask Visual Studio Code como IDE para desarrollar Manejo de las rutas MVC Trabajar con múltiples vistas (layout) Conexión a la base de datos Formularios para la gestión de datos y validación Sesión y sesión flash Carga de archivos Redirecciones y mensajes por sesión CRUD con los modelos Conocer las librerías y funciones de ayuda principales en Flask Crear funciones de Ayuda o helpers personalizadas. Creación de RestApis tipo CRUD Módulo de usuario con login registro Uso de los middleware para interceptar peticiones Paquetes y aspectos generales Envío de emails App tipo chat con los websocket Integrar con Bootstrap 5 Crear apps en Vue con la CLI En Bootstrap vamos a usar: Nav Cartas Alertas Modals Tablas Imágenes Carrusel Botones Grid y contaniner Font Awesome para los íconos Proyectos o aplicaciones Secciones para crear una aplicación de administración, filtros, login CRUDs, Bootstrap 5. Secciones para crear apps en Vue para consumir la Rest Api. Secciones para crear una aplicación de chat. Ventajas de desarrollar en Flask y de tomar este curso Flask es un framework estupendo para para comenzar a desarrollar en Python; al ser un microframework resulta muy facil crear nuestro “Hola Mundo” e ir expandiendo la aplicación con más y más caracteristicas hasta dominar el framework y ese es el enfoque de este curso. Ofrece una excelente organización modular, es un framework rápido, potente, con librerías y helpers listas para usar tanto de Flask como de Python y extensible con paquetes y librerías de terceros; a su vez. Si quieres tener el detalle completo del curso, puedes ver las secciones y clases que conforman el mismo.
- Instalar y actualizar Flask
- Emplear Flask de manera fluida y conocer sus componentes fundamentales
- Emplear Python 3 de manera básica/intermedia
- Organizar la app en múltiples módulos
- Una aplicación web básica con funciones de CRUD desde cero
- Login con protección en el password, distintos niveles de roles
Temario
UNIDAD 1 - Introducción al curso · 1 leccionesUNIDAD 1 - Introducción al curso
UNIDAD 1 - Introducción al curso
- Introducción
UNIDAD 2 - Introducción a Flask · 19 leccionesUNIDAD 2 - Introducción a Flask
UNIDAD 2 - Introducción a Flask
- Introducción
- Software necesario
- Verificar el comando de acceso a Python 3 y Pip
- Preparar el entorno
- EXTRA: Sobre el Nuevo gestor de paquetes, dependencias y proyectos de Python
- Comandos básicos
- Hola Mundo
- Libro Gratis Comunitario
- Seleccionar el intérprete de Python en VSC
- Modos de configuraciones
- Características principales de Flask
- Creando una aplicación modular: Presentación
- Creando una aplicación modular: Crear el esquema
- Creando una aplicación modular: Configuración
- Creando una aplicación modular: Controladores
- Tipos de rutas y parámetros
- Publicar en github
- Utiliza un Chat IA para programar
- Reto de Preguntas
UNIDAD 3 - Primeros pasos con Python (Reforzamiento) · 20 leccionesUNIDAD 3 - Primeros pasos con Python (Reforzamiento)
UNIDAD 3 - Primeros pasos con Python (Reforzamiento)
- Introducción
- Consola interactiva/consola de Python
- Archivos de Python
- Variables y tipo de datos
- Operaciones matemáticas
- Concatenación de String
- Casteos
- Listas
- Condicionales
- Ciclos
- Funciones
- Funciones parte 2
- Diccionarios
- Clases, Primeros pasos
- Clases, Primeras clases
- Clases, Método constructor
- Clases, Herencia
- Módulos en Python, Primeros pasos
- Módulos en Python, Ejercicio
- Reto de Preguntas
UNIDAD 4 - Template en Flask con Jinja · 37 leccionesUNIDAD 4 - Template en Flask con Jinja
UNIDAD 4 - Template en Flask con Jinja
- Introducción
- Sobre Jinja 2
- Configurar Jinja en Flask
- Primeras pruebas con los templates
- Primeras pruebas con los templates, parámetros vía GET
- Bloques de control: Condicionales
- Bloques de control: Ciclo for
- Filtros: Presentación
- Filtro default
- Filtro escape
- Filtro conversion
- Filtro max y min
- Filtro round
- Filtro replace
- Filtro join
- Filtro lower y upper
- Filtro reverse
- Filtro length
- Filtro sort
- Filtro slice
- Establecer variables
- Bloque
- Bloque raw
- Bloque macro
- Templates
- Herencia en los templates
- Listado de tareas
- Crear tarea
- Actualizar tarea
- url_for, rutas con nombre
- Redirecciones
- Eliminar tarea
- Publicar en github
- Clases basadas en vistas - Presentación
- Clases basadas en vistas - Implementación
- Extra: Filtros personalizados
- Reto de Preguntas
UNIDAD 5 - Base de datos · 9 leccionesUNIDAD 5 - Base de datos
UNIDAD 5 - Base de datos
- Introducción
- Presentación
- Instalar dependencias
- Configurar conexión
- Modelos (tablas) de la base de datos
- Crear tabla y pruebas
- Operaciones a la base de datos
- Probar operaciones
- Publicar en github
UNIDAD 6 - Flask Migrate · 10 leccionesUNIDAD 6 - Flask Migrate
UNIDAD 6 - Flask Migrate
- Introducción
- Sobre Flask Migrate
- Instalar dependencia
- Configurar
- Problemas con el comando Flask db
- Comandos claves
- Generar migraciones
- Aplicar migraciones en la base de datos
- Más comandos
- Publicar en github
UNIDAD 7 - Formularios · 13 leccionesUNIDAD 7 - Formularios
UNIDAD 7 - Formularios
- Introducción
- Presentación
- Instalar dependencia
- Principales campos y validaciones
- Crear la primera clase formulario
- Instanciar y usar el formulario desde el template
- Proceso de actualizar
- Reutilizar formulario
- Proceso de listado
- Proceso de eliminar
- Upload de archivos: Configuración inicial
- Upload de archivos: Crear proceso
- Publicar en github
UNIDAD 8 - Relaciones · 12 leccionesUNIDAD 8 - Relaciones
UNIDAD 8 - Relaciones
- Introducción
- Presentación
- Uno a uno: Modelos y base de datos
- Uno a uno: Formularios y procesos
- Ver el documento de una tarea
- Eliminar el documento de una tarea
- Relaciones de tipo uno a muchos: Modelos y base de datos
- Relaciones de tipo uno a muchos: Formularios y procesos
- Relaciones de tipo muchos a muchos: Modelos y base de datos
- Relaciones de tipo muchos a muchos: Asignar una etiqueta
- Relaciones de tipo muchos a muchos: Remover una etiqueta
- Publicar en github
UNIDAD 9 - Mensajes flash y sesión · 6 leccionesUNIDAD 9 - Mensajes flash y sesión
UNIDAD 9 - Mensajes flash y sesión
- Introducción
- Mensajes flash
- Categorías: Filtros
- Categorías: Por tipo
- Publicar en github
- Extra: Sesión
UNIDAD 10 - Autenticación: Flask Login · 10 leccionesUNIDAD 10 - Autenticación: Flask Login
UNIDAD 10 - Autenticación: Flask Login
- Introducción
- Instalar dependencia
- Configuración básica
- Crear formularios
- Configuraciones adicionales
- Registrar usuarios
- Login de usuarios
- Proteger rutas
- Logout
- Publicar en github
UNIDAD 11 - Rest Api · 34 leccionesUNIDAD 11 - Rest Api
UNIDAD 11 - Rest Api
- Introducción
- Presentación
- Instalar dependencia
- Crear la primera Api Rest
- Implementar recursos para la tarea: GET
- Postman
- Paquete requests
- Serializar respuestas: mediante el modelo
- Serializar respuestas: mediante el decorador marshal_with
- Implementar recursos para la tarea: Create
- Implementar recursos para la tarea: Update
- Implementar recursos para la tarea: Delete
- Parámetros del request, parsing y validaciones, presentación
- Parámetros del request, parsing y validaciones, definición
- Parámetros del request, parsing y validaciones, implementar
- Otros recursos, paginación
- Tarea: API para las categorías
- Tarea: API para las etiquetas
- Carga de archivos: request
- Carga de archivos: reqparse
- Retornar las etiquetas en el listado de tareas
- Autenticación: Presentación
- Autenticación: Instalar paquete
- Autenticación: Generar token
- Proteger y acceder a la Rest API protegida
- Obtener la identidad del token
- Tiempo de expiración del token
- Pruebas a la API: requests
- Pruebas a la API: requests, GET
- Pruebas a la API: requests, GET protegida
- Pruebas a la API: requests, POST
- Pruebas a la API: requests, PUT
- Pruebas a la API: requests, DELETE
- Publicar en github
UNIDAD 12 - Pruebas unitarias · 22 leccionesUNIDAD 12 - Pruebas unitarias
UNIDAD 12 - Pruebas unitarias
- Introducción
- ¿Por qué hacer pruebas?
- Instalar dependencia
- Creando las primeras pruebas unitarias
- conftest.py, generar un cliente para las pruebas
- Pruebas unitarias para el Hola Mundo
- Pruebas para el módulo de dashboard: Configuración base
- Pruebas para el módulo de dashboard: Crear
- Detalle al importar el app
- Pruebas para el módulo de dashboard: Actualizar
- Pruebas para el módulo de dashboard: Listado
- Pruebas para el módulo de dashboard: Eliminar
- Resto de los módulos dashboard
- Login requerido
- Pruebas para la Api Restful: Listado
- Pruebas para la Api Restful: Detalle
- Pruebas para la Api Restful: Crear
- Pruebas para la Api Restful: Crear, token autorización
- Pruebas para la Api Restful: Actualizar
- Pruebas para la Api Restful: Eliminar
- Conclusiones
- Publicar en github
UNIDAD 13 - Archivos estáticos, Bootstrap 5 · 21 leccionesUNIDAD 13 - Archivos estáticos, Bootstrap 5
UNIDAD 13 - Archivos estáticos, Bootstrap 5
- Introducción
- Presentación
- Archivos estáticos
- Instalar Bootstrap
- Bootstrap, Container
- Bootstrap, Tabla
- Bootstrap, Carta
- Menú de navegación
- Paginación
- Botones
- Formularios
- Formularios parte 2
- Errores de formulario
- Mensajes de confirmación
- Login y registro
- Detalles finales: Clases de utilidades
- Crear drowpdown para el usuario
- Drowpdown: Mostrar información del usuario
- Sistema de columnas para los formularios
- Estilo personalizado
- Publicar en github
UNIDAD 14 - Localización y traducciones · 8 leccionesUNIDAD 14 - Localización y traducciones
UNIDAD 14 - Localización y traducciones
- Introducción
- Presentación
- Instalación y configuración básica
- Marcar los textos a traducir, primeras pruebas
- Marcar los textos a traducir de la aplicación
- Generar archivos de traducción y traducir la app
- Pruebas en la aplicación
- Publicar en github
UNIDAD 15 - Extensiones · 7 leccionesUNIDAD 15 - Extensiones
UNIDAD 15 - Extensiones
- Introducción
- Opcional: Duplicar proyecto
- Flask Caching
- Flask Mail
- Flask Debug Toolbar
- Flask Seeder
- Flask CLI
UNIDAD 16 - Decoradores personalizados · 3 leccionesUNIDAD 16 - Decoradores personalizados
UNIDAD 16 - Decoradores personalizados
- Introducción
- Decoradores sin parámetros
- Decoradores con parámetros
UNIDAD 17 - Roles y Perfil de usuario · 40 leccionesUNIDAD 17 - Roles y Perfil de usuario
UNIDAD 17 - Roles y Perfil de usuario
- Introducción
- Modificar modelo de usuarios: Datos básicos
- Modificar modelo de usuarios: Redes sociales
- Modificar modelo de usuarios: Dirección
- Modificar modelo de usuarios: Idiomas
- Modificar modelo de usuarios: Tareas del usuario
- Perfil de usuario: Estructura base
- Perfil de usuario: Nombre, apellido e email, parte 1
- Perfil de usuario: Nombre, apellido e email, parte 2
- Perfil de usuario: Direcciones
- Sistema de columnas para los formularios
- Perfil de usuario: Cambiar la contraseña
- Perfil de usuario: Redes sociales: Listado inicial
- Perfil de usuario: Redes sociales: Operaciones y detalles form
- Perfil de usuario: Redes sociales: Proceso de creación y actualización
- Perfil de usuario: Redes sociales: Mostrar detalle en el form
- Perfil de usuario: Redes sociales: Eliminar
- Perfil de usuario: Redes sociales: Validaciones
- Avatar: Upload de archivos
- Avatar: Mostrar
- Avatar: Eliminar
- Perfil de usuario: Seleccionar idioma
- Cambiar el idioma de la aplicación desde el usuario
- Conclusión
- Tareas del usuario
- Roles: Presentación
- Roles: Modelos, migraciones y tablas
- Roles: Data de ejemplo
- Roles: Crear decorador para validar roles
- Roles: Implementar en el resto de los controladores
- Roles: Verificar rol de ADMIN o EDITOR
- Roles: Ocultar enlaces si el usuario no tiene el rol
- Conclusiones
- Verificar usuario por email: Presentación
- Verificar usuario por email: Cambios en el modelo
- Verificar usuario por email: Token
- Verificar usuario por email: Cambios en el registro
- Verificar usuario por email: Controlador para verificar el token
- Verificar usuario por email: Email (demo)
- Publicar en github
UNIDAD 18 - Operaciones comunes en SQLAlchemy · 5 leccionesUNIDAD 18 - Operaciones comunes en SQLAlchemy
UNIDAD 18 - Operaciones comunes en SQLAlchemy
- all(), filters(), limits()
- first()
- like()
- negación
- joins
UNIDAD 19 - Variables de entorno · 2 leccionesUNIDAD 19 - Variables de entorno
UNIDAD 19 - Variables de entorno
- Configuración básica
- Acceder a las variables de entorno desde el proyecto
UNIDAD 20 - Aspectos Generales · 3 leccionesUNIDAD 20 - Aspectos Generales
UNIDAD 20 - Aspectos Generales
- Extensiones Impresindibles
- Programación en la Era de la IA: Hacia un Desarrollo Inteligente y refactorizaci
- Flask Socket IO desde cero, comunicación Full Duplex Cliente y Servidor
UNIDAD 21 - Deployment · 5 leccionesUNIDAD 21 - Deployment
UNIDAD 21 - Deployment
- Railway, deploy de tus aplicaciones en PHP, Python web, Node... como en Heroku G
- Deploy en Railway
- Curso de Docker para desarrolladores
- DOCKERIZAR tu APP en FLASK: Crea tu Imagen Docker Fácil y Rápido en 2 Pasos
- DOCKERIZAR tu APP en FLASK + Servidor en Gunicorn
UNIDAD 22 - Filtrar con formularios · 15 leccionesUNIDAD 22 - Filtrar con formularios
UNIDAD 22 - Filtrar con formularios
- Introducción
- Estructura del proyecto
- Campos adicionales para la publicación
- Flask Seeder: Generar datos de prueba para los posts
- Crear página de index para el blog
- Configurar Bootstrap 5 y plantilla maestra
- Crear formulario
- Obtener datos del formulario y armar lógica filtros
- Crear listado y filtrar por post y categoría
- Filtro para el listado por etiquetas
- Select múltiple para las etiquetas
- Limpiar filtro
- Categoría vacía
- Crear enlaces para filtros de etiquetas y categorías
- Paginado
UNIDAD 23 - *************** CURSO ANTERIOR · 1 leccionesUNIDAD 23 - *************** CURSO ANTERIOR
UNIDAD 23 - *************** CURSO ANTERIOR
- SOBRE EL RESTO DEL CURSO
UNIDAD 24 - Introducción al curso · 7 leccionesUNIDAD 24 - Introducción al curso
UNIDAD 24 - Introducción al curso
- Estructura del curso
- **** IMPORTANTE: Realizar preguntas
- Requisitos para tomar el curso
- Sobre las calificaciones
- Instalar Python
- Configurar nuestro Editor
- Instalar Visual Studio Code
UNIDAD 25 - Python básico · 15 leccionesUNIDAD 25 - Python básico
UNIDAD 25 - Python básico
- Introducción
- Variables
- Tipos de datos
- Operadores
- Más datos sobre el String
- String Format (Formato de los String)
- Listas
- Condicionales
- For
- Funciones
- Clases
- Enum
- Diccionarios
- try except: errores y excepciones
- Código fuente de la sección
UNIDAD 26 - Conociendo el mundo de Python, pip y Flask · 21 leccionesUNIDAD 26 - Conociendo el mundo de Python, pip y Flask
UNIDAD 26 - Conociendo el mundo de Python, pip y Flask
- Introducción
- Sobre flask
- ¿Necesitas dar los primeros pasos en las principales tecnologías del desarrollo?
- Presentación de la pip e Instalar Flask mediante la pip
- Sobre los ambientes virtuales de Python y el curso
- Nuestra primera aplicación
- Versión actual de flask y actualizar
- Python app.py vs flask run
- Modo desarrollo para activar la recarga (reload)
- Pase de datos y valor por defecto
- Imprimir nuestro primer código HTML
- Imprimir variable en el código HTML
- Organizando archivos estáticos
- render_template para renderizar templates con Jinja2
- Creando una aplicación modular
- Introducción a Blueprint para crear apps modulares
- Manejando configuraciones básicas
- Manejando las configuraciones en archivos de configuración: from_pyfile
- Manejando las configuraciones en archivos de configuración: from_object
- ¿Qué hemos aprendido?
- Código fuente de la sección
UNIDAD 27 - Creando una app de almacen con Blueprint y Jinja2 · 20 leccionesUNIDAD 27 - Creando una app de almacen con Blueprint y Jinja2
UNIDAD 27 - Creando una app de almacen con Blueprint y Jinja2
- Introducción y que vamos a aprender
- Creando una app para manejar productos: Estructura básica
- Consultar datos de un modelo (diccionario) con datos estáticos
- Definiendo el template para el listado y el método
- Definiendo el template para el detalle y el método
- Los filtros en Jinja2: default, para dar valores por defecto
- Los filtros en Jinja2: safe, para imprimir código HTML
- Los filtros en Jinja2: truncate, para cortar textos
- Los filtros en Jinja2: count, para contar longitud de textos
- Los filtros en Jinja2: float, para convertir valores a flotantes
- Los filtros en Jinja2: int, para convertir valores a enteros
- Los filtros en Jinja2: round, para redondear números flotantes
- Los filtros en Jinja2: join, para convertir array a texto
- Los filtros en Jinja2: length, para contar la cantidad de elementos de un array
- Los filtros en Jinja2: tojson, para convertir objetos a json
- Crear un filtro personalizado para calcular el iva en JinJa2
- Jinja2: Crear un template base para nuestro módulo
- Jinja2: Condicionales
- Jinja2: Variable loop en los for
- Opcional: Publicar aplicación en github
UNIDAD 28 - Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos · 23 leccionesUNIDAD 28 - Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos
UNIDAD 28 - Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos
- Introducción y que vamos a aprender
- Crear la conexión y configuración a la base de datos
- Crear el modelo de productos
- Obteniendo todos los registros de la tabla product
- Definir la configuración de la base de datos en el archivo de configuración.
- Obtener un registro
- SQLAlchemy: Introducción a las operaciones de consulta a la base de datos
- SQLAlchemy: Crear registros
- SQLAlchemy: Actualizar registros
- SQLAlchemy: Borrar registros
- Crear vista de formulario para crear productos
- Crear función en Flask para procesar el formulario y guardar producto
- Realizar una redirección al formulario de creación de productos
- Crear mensajes flash
- Configurar mensaje flash en vista
- Funciones y vista para actualizar formulario
- Crear un formulario con Flask WFT
- Validar formulario con Flask WFT
- Incluir una vista dentro de otra vista
- Actualizar formulario de producto con Flask WFT
- Borrar productos
- Paginar registros
- Opcional: Publicar aplicación en github
UNIDAD 29 - Creando una app de almacén: Bootstrap 4 o 5, +SQLAlchemy y Flask WFT · 23 leccionesUNIDAD 29 - Creando una app de almacén: Bootstrap 4 o 5, +SQLAlchemy y Flask WFT
UNIDAD 29 - Creando una app de almacén: Bootstrap 4 o 5, +SQLAlchemy y Flask WFT
- Introducción
- Bootstrap 4: Instalar
- Bootstrap 4: Configurar el layout de la app
- Bootstrap 4: Mensajes de alerta y configurar nueva vista
- Bootstrap 4: Configurar el diseño de los formularios
- Bootstrap 4: Configurar navbar
- Bootstrap 4: Configurar footer
- Crear un macro para la paginación + componente en Bootstrap 4
- Bootstrap 4: Jumbotron para los listados de productos
- Crear una hoja de estilo personalizada
- Bootstrap 4: modal para eliminar los registros
- Instalar Fontawesome
- Bootstrap 4: Configurar los Tooltips de la app
- Crear modelo y el WTF para las categorías
- Crear CRUD para las categorías
- Crear las relaciones entre la tabla categoría y producto y campo en la WFT
- Crear el listado de categorías en el formulario
- Relaciones de Uno a Muchos (One to Many) entre categorías y productos
- Demo: Relaciones de Muchos a Uno (Many to One) entre productos y categorías
- Registrar cambios de la categorías del producto
- Colocar la categorías en el listado
- ¿Qué hemos aprendido?
- Opcional: Publicar aplicación en github
UNIDAD 30 - Autenticación en Flask: Creando un módulo de login · 20 leccionesUNIDAD 30 - Autenticación en Flask: Creando un módulo de login
UNIDAD 30 - Autenticación en Flask: Creando un módulo de login
- Introducción y que vamos a aprender
- Autenticación simple en base a sesión: crear el módulo
- Crear el modelo de usuario
- Crear el formulario de registro
- Crear función y vista de registro
- Verificar si el usuario existe
- Login del usuario
- Cerrar sesión
- Demo: Verificar si el usuario está autenticado y objeto de sesión
- Confirmar contraseña
- Opciones de usuario en el navbar
- Módulo de login mediante Flask-Login
- Primeros pasos con Flask-Login
- Decoradores para proteger un módulo con login
- Redireccionar mediante el parámetro next
- Inyección de JavaScript para la ruta de redirección en login
- Proteger módulo CRUD
- Crear decoradores: proteger el CRUD con un usuario admin
- Cambiar el diseño del formulario de login
- Opcional: Publicar aplicación en github
UNIDAD 31 - Creando una Rest Api · 15 leccionesUNIDAD 31 - Creando una Rest Api
UNIDAD 31 - Creando una Rest Api
- Introducción y que vamos a aprender
- Entendiendo como funciona una Rest Api y creando el módulo
- Creando nuestra Rest Api: Esquema básico de la clase, get
- Creando nuestra Rest Api: Convirtiendo la respuesta en json
- Creando nuestra Rest Api: Definiendo todos los métodos de la clase y de HTTP
- Creando nuestra Rest Api: Obtener el detalle de un registro
- Instalar Postman para realizar peticiones
- Petición Post: Recibir y validar
- Petición Post: Crear el producto
- Normalizar respuestas de la RestApi
- Petición Delete: Eliminar un producto
- Petición Put: Actualizar un producto
- Crear RestApi de detalle de la categoría
- Opcional: Publicar aplicación en github
- Código fuente de la sección
UNIDAD 32 - Conectarse a la Rest Api con Vue 3 · 13 leccionesUNIDAD 32 - Conectarse a la Rest Api con Vue 3
UNIDAD 32 - Conectarse a la Rest Api con Vue 3
- Introducción
- Crear un proyecto en Vue con Vue CLI
- Cors en Flask
- Crear un listado de productos
- Componente para crear productos
- Enviar peticiones fetch desde vue mediante FormData a la Rest Api
- Eventos personalizados entre componentes
- Comunicación entre el componente padre al hijo
- Editar un producto
- Detalle de un producto, fetch
- Detalle de un producto, referencia
- Eliminar un producto
- Publicar en git
UNIDAD 33 - Estilos y componentes en Vue con Vuestic · 7 leccionesUNIDAD 33 - Estilos y componentes en Vue con Vuestic
UNIDAD 33 - Estilos y componentes en Vue con Vuestic
- Instalar y configurar vuestic
- Componer Layout
- Configurar campos de formulario
- Componente detalle: Componentes UI
- Componente detalle: Loading o fase de carga
- Componente detalle: marcar la selección desde el listado
- Modal: Crear un modal para el formulario de creación
UNIDAD 34 - Conectarse a la Rest Api con Vue 2 (Legacy) · 28 leccionesUNIDAD 34 - Conectarse a la Rest Api con Vue 2 (Legacy)
UNIDAD 34 - Conectarse a la Rest Api con Vue 2 (Legacy)
- Sobre la sección
- Introducción y que vamos a aprender
- Sobre Vue e Instalar Vue CDN en nuestro proyecto
- Crear un módulo para nuestra app en Vue y Hola Mundo
- Métodos y evento click Vue
- Los fetch para obtener recursos
- Los ciclos en Vue y atributos y concatenación en Vue
- Los condicionales en Vue
- Los componentes en Vue para modularizar nuestra app
- Crear un archivo aparte para la instancia principal de Vue
- Ciclo de vía de Vue: generar automáticamente nuestro listado
- Crear un componente para eliminar productos y registrar ID producto a eliminar
- Pase de datos entre los componentes mediante los props
- Los watch para observar cambios en propiedades
- Bug al momento de activar repetidamente el modal en un mismo producto
- Personalizar el modal con datos del producto y v-if vs v-show
- Borrar producto mediante un fetch
- Los eventos personalizados para devolver el producto eliminado
- Los índices de los for para eliminar el producto
- Componente guardar/actualizar producto: Crear
- Los v-model para los campos de formulario
- Componente guardar/actualizar producto: Crear producto
- Componente guardar/actualizar producto: Actualizar producto
- Componente guardar/actualizar producto: Recargar listado
- Verificar código en la respuesta del servidor
- Mostrar validaciones del lado del servidor
- Listado de categorías desde la Rest Api
- Código fuente de la sección
UNIDAD 35 - Extra: Aspectos generales · 27 leccionesUNIDAD 35 - Extra: Aspectos generales
UNIDAD 35 - Extra: Aspectos generales
- Introducción
- Página 404 500 personalizada
- Comando pip freeze
- Ambientes virtuales
- Carga de archivos: Crear campos y validaciones
- Carga de archivos: Definir archivos permitidos y configuración del path carga
- Carga de archivos: Validar extensión de archivos cargados
- Carga de archivos: Registrar cambios y guardar archivo
- Carga de archivos: opcional
- Protección formularios CSRF
- Valores por defecto en los parámetros de la URL
- Definir categorías para los mensajes flash
- Crear estructura para los mensajes flash de errores de formulario
- Mostrar errores a cada campo formulario
- Proteger Rest Api con autenticación/autorización
- Validaciones personalizadas
- Validaciones personalizadas y pase de parámetros
- Problema con la validación personalizada al actualizar un registro
- Configuraciones adicionales para el WTform
- Definir formulario hijo dentro de otro
- Construir un campo de formulario base
- Construir múltiples campos de formulario de manera dinámica
- Borrar campos de formulario de manera dinámica
- Google Recaptcha
- Error de validación Google Recaptha
- Pasar datos del formulario a un objeto
- Introducción a Celery: Procesamiento en Segundo Plano en Python: FastAPI Django
UNIDAD 36 - Extra: Paquetes o módulos imprescindibles para Flask · 24 leccionesUNIDAD 36 - Extra: Paquetes o módulos imprescindibles para Flask
UNIDAD 36 - Extra: Paquetes o módulos imprescindibles para Flask
- Flask Bootstrap 4
- Flask Mail
- Flask Migrate
- Flask Babel
- Flask Admin: Primeros pasos
- Flask Admin: Excluir operaciones CRUD y columnas
- Flask Admin: Modales para la creación y actualización
- Flask Admin: Exportar, búsqueda y filtros
- Flask Admin: Date y Datetime
- Flask Admin: Listas estáticas
- Flask Admin: Validaciones
- Flask Admin: Personalizar los datos en crear o guardar
- Flask Admin: Instanciar modelo de creación o edición del formulario
- Flask Admin para los productos y categorias
- Flask Admin: personalizar template
- Flask Admin: personalizar template: listar, crear y editar
- Flask Admin: Bootstrap 4
- Flask Admin: Proteger el ModelView con el login de Flask Login
- Flask User
- Flask Restless
- Flask Restless: Post, Patch y Delete
- Flask Restless: Query de búsquedas
- Flask Caching
- Flask-DebugToolbar
UNIDAD 37 - Potenciando el módulo administrador · 48 leccionesUNIDAD 37 - Potenciando el módulo administrador
UNIDAD 37 - Potenciando el módulo administrador
- Introducción
- Realizar cambios iniciales para trabajar con Flask User
- Trabajando con Flask Migrate para crear la nueva estructura
- Realizar cambios en los enlaces de login y logout
- Realizar cambios en los enlaces de login y logout parte 2
- Habilitar la confirmación por emails
- Personalizar templates de Flask User
- Flask User: Personalizar template base
- Flask User: Personalizar template login
- Flask User: Personalizar template register
- Flask User: Personalizar errores de formulario
- Flask User: Personalizar template change password
- Flask User Roles: Incorporar los Roles en el modelo de datos (Many to Many)
- Flask User Roles: Cargar datos iniciales de manera manual
- Flask User Roles: Proteger el dashboard con el nuevo esquema de roles
- Flask User Roles: Crear un usuario de tipo superadmin
- Demo: Flask User Roles: Asignar el rol de superadmin y de admin
- Demo: Flask User Roles: Proteger dashboard con el rol de admin y superadmin
- Flask User Roles: Signals para disparar eventos de usuario
- Flask User Roles: Asignar rol por defecto al momento de crear un usuario
- Flask User Form: Tipos
- Flask User Form: Definir controlador y vista para registrar un usuario
- Demo: Flask User Form: Personalizar
- Definir constructor del modelo para crear un usuario
- Crear un usuario
- Hashing de la contraseña
- Asignar roles de admin
- Listado de usuarios
- Listado de usuarios: Definir filtro por admin (implementación join)
- Demo: Listado de usuarios: Definir filtro por admin (implementación filter)
- Habilitar la paginación
- Actualizar un usuario
- Validar username único
- Borrar un usuario
- Establecer el rol para CRUD de usuarios superadmin
- Seleccionar un template para mejorar el dashboard
- Instalar el template para nuestra aplicación
- Configurar el header
- Configurar el navbar
- Configurar el footer
- Configurar las cartas del listado
- Configurar los formularios: Definir estructura
- Configurar los formularios: Crear cabecera
- CSS personalizado para el dashboard
- Mostrar enlaces de paginación en el centro
- Crear template base para el módulo de usuarios
- Opcional: Publicar aplicación en github
- Código fuente de la sección
UNIDAD 38 - Crear un sencillo sistema de Facturación · 30 leccionesUNIDAD 38 - Crear un sencillo sistema de Facturación
UNIDAD 38 - Crear un sencillo sistema de Facturación
- Introducción
- Crear estructura inicial: Crear módulo facturación
- Crear CRUD para usuarios de tipo regular | Variables globales
- Verificar rol del usuario autenticado en opciones del sidebar
- Diseño del filtro de búsqueda
- Búsqueda de productos por palabras claves
- Mostrando el listado de productos
- Crear un formulario para procesar un producto
- Devolver listado de productos vía json
- Consumir productos vía json: Crear el fetch
- Consumir productos vía json: Crear la estructura
- Consumir productos vía json: Crear el listado
- Obtener y validar mediante los productos seleccionados con JavaScript
- Definir los datos a enviar vía fetch/post
- Crear tabla para las ventas
- Crear tabla para los productos de las ventas (OneToMany)
- Guardar los datos del formulario
- Validar datos de formulario: Crear formulario en Flask
- Validar datos de formulario: Crear validaciones y validar controlador y vista
- Validar datos de formulario: Ids de productos
- Validar datos de formulario: Mandar el token csrf
- Modal de Bootstrap: Configurar y habilitar función para el modal
- Modal de Bootstrap: Mostrar mensajes del servidor
- Modal de Bootstrap: Variar modal si la respuesta es 200 o 50x
- Listado de ventas
- Imprimir un sencillo PDF: Librería y uso básico
- Imprimir un sencillo PDF: Crear página HTML
- Imprimir un sencillo PDF: Imprimir un PDF
- Imprimir un sencillo PDF: Descargar el PDF
- Código fuente de la sección
UNIDAD 39 - Refactorizar app para hacerla más modular · 5 leccionesUNIDAD 39 - Refactorizar app para hacerla más modular
UNIDAD 39 - Refactorizar app para hacerla más modular
- Introducción
- Renombrar controladores: Caso de estudio controlador producto
- Definir una URL base para el controlador mediante Blueprint
- Modelo único en nuestro módulos Renombrar modelo producto
- Código fuente de la sección
UNIDAD 40 - Extra: Creando una Rest Api con el paquete de Flask restful · 18 leccionesUNIDAD 40 - Extra: Creando una Rest Api con el paquete de Flask restful
UNIDAD 40 - Extra: Creando una Rest Api con el paquete de Flask restful
- Introducción
- Instalando Flask restful
- Crear una Api Rest mínima
- Crear una Rest Api para las categorías
- Método para verificar si la categoría existe
- Método para convertir a json
- Obtener el detalle de una categoría
- Obtener Todas las categorías
- Deshabilitar la protección para la CSRF para la Rest
- Crear una categoría
- Actualizar una categoría
- Borrar una categoría
- Obtener datos desde con el Request parsing
- Campos para la salida (parseo) de datos
- Obtener categorías filtrando por el nombre
- Autenticación requerida: Primeros pasos
- Autenticación requerida: Integrar FlaskUser/FlaskLogin
- Código fuente de la sección
UNIDAD 41 - Flask Dance: Login Social · 9 leccionesUNIDAD 41 - Flask Dance: Login Social
UNIDAD 41 - Flask Dance: Login Social
- Introducción
- Configurar pyopenssl
- Instalar el paquete para la OAuth Flask Dance
- Obtener las credenciales de Facebook
- Configurar el Login via Facebook en Flask
- Obtener las credenciales de Google
- Configurar el Login via Google en Flask
- Obtener las credenciales de Twitter
- Configurar el Login via Twitter en Flask
UNIDAD 42 - Flask socketIO: Comunicación Full Duplex · 37 leccionesUNIDAD 42 - Flask socketIO: Comunicación Full Duplex
UNIDAD 42 - Flask socketIO: Comunicación Full Duplex
- Introducción
- Crear nuevo proyecto
- Explicar el flujo básico de Socket y la comunicación flux duplex
- Crear página HTML de ejemplo
- Comunicación full duplex conexión servidor
- Comunicación full duplex conexión cliente
- Comunicación varios clientes, broadcast
- Enviar varios argumentos y un json
- Crear una app de chat: Enviar mensajes
- Crear una app de chat: Listar mensajes
- Crear una app de chat: Limpiar textarea al enviar un mensaje
- Crear una app de chat: Inyectar fecha actual
- Crear una app de chat: Pasar información sobre la persona
- Crear esquema modular
- Crear archivo de configuración
- Integrar base de datos: Flask Migrate y SQAlchemy
- Integrar con Flask Login y Flask WTF: Registrarse
- Integrar con Flask Login y Flask WTF: Iniciar Sesión
- Integrar con Flask Login y Flask WTF: Cerrar Sesión
- Proteger ruta para el chat y pasar datos usuario autenticado
- Componer datos del usuario autenticado en el mensaje
- Mensajes Room: Crear modelo
- Mensajes Room: Guardar mensajes
- Mensajes Room: Devolver mensajes en un diccionario
- Listar mensajes
- Mensajes Room: Crear mensajes y habitaciones
- Rooms: Duplicar aplicación
- Rooms: Primeras pruebas
- Rooms: Crear pool de habitaciones a las cuales podamos des/suscribirnos
- Detectar usuarios des/conectados
- Rooms: Registrar en qué habitación estamos suscritos
- Rooms: Seleccionar habitación y enviar mensajes
- Namespace
- Método on_event para definir eventos del socket
- Manejo de Errores
- Publicar en git
- Código fuente de la sección
UNIDAD 43 - Deployment · 1 leccionesUNIDAD 43 - Deployment
UNIDAD 43 - Deployment
- Railway, deploy de tus aplicaciones en PHP, Python web, Node... como en Heroku G
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
43 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
Cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Andrés Cruz Yoris.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 43 unidades · 694 lecciones · 60 h
- 12 meses de acceso
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Andrés Cruz Yoris; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


