Curso y Libro en Flask 3 con Python 3 + integración con Vue 3 y Bootstrap 5 - 2025

Este es el curso MÁS completo que encontrarás de Flask, veremos de todo, desde aspectos básicos como las rutas, controladores, vistas, modelos, manejo de formularios, validaciones, entre otros hasta aspectos más completos como Rest Api con token de autenticación (y una app para consumir la misma desde Vue), manejo de cache, roles, paquetes imprecindibles y mucho más, el detalle del curso lo puedes ver en la parte inferior de esta publicación y lo mejor, es que es una inversión para varios años ya que, de manera gratuita, mantendré el curso por varios años a las nuevas versiones y dando mayor soporte por Academia.

 

Tambien tengo recursos gratuitos para el Curso en el Blog

Es importante mencionar, que el curso tambien tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.

 

¿Qué es Flask?

Flask es un framework web estupendo para la creación de aplicaciones web del lado del servidor con Python; si no tienes conocimientos en el uso de frameworks web del servidor con Python, Flask es un buen candidato para inciar; al ser un microframework, lo que significa que inicialmente trae lo mínimo necesario para poder funcionar, puedes ir viendo de a poco cómo funciona el framework sin dar cabida a confusiones con archivos, estructura de directorios o módulos que no haz colocado, como sucede con otros frameworks más robustos como Django, que al crear un proyecto en Django, cuenta con muchos archivos y carpetas.

Aunque, que Flask sea un microframework no significa que debe ser empleado para proyectos pequeños, ya que, cuenta con una gran cantidad de extensiones que puedes configurar al proyecto en base a las necesidades del mismo; por ejemplo, si necesitas enviar emails, ya existen extensiones, al igual que si quieres realizar el login social, conectarse mediante ftp, módulos de usuarios, etc.

Este libro es mayoritariamente práctico, iremos conociendo los fundamentos de Flask, conociendo sus características principales en base a una pequeña aplicación que iremos expandiendo sección tras sección.

 

 

En este curso vas a aprender a crear tus primeras aplicaciones web en Flask framework empleando Python 3, junto con el lenguaje más famoso para este lenguaje de programación como lo es Python.

 

Objetivo

Flask es un framework web estupendo para la creación de aplicaciones web del lado del servidor con Python; si no tienes conocimientos en el uso de frameworks web del servidor con Python, Flask es un buen candidato para inciar; al ser un microframework, lo que significa que inicialmente trae lo mínimo necesario para poder funcionar, puedes ir viendo de a poco cómo funciona el framework sin dar cabida a confusiones con archivos, estructura de directorios o módulos que no haz colocado, como sucede con otros frameworks más robustos como Django, que al crear un proyecto en Django, cuenta con muchos archivos y carpetas. 

Aunque, que Flask sea un microframework no significa que debe ser empleado para proyectos pequeños, ya que, cuenta con una gran cantidad de extensiones que puedes configurar al proyecto en base a las necesidades del mismo; por ejemplo, si necesitas enviar emails, ya existen extensiones, al igual que si quieres realizar el login social, conectarse mediante ftp, módulos de usuarios, etc. 

Este curso es mayoritariamente práctico, iremos conociendo los fundamentos de Flask, conociendo sus características principales en base a una pequeña aplicación que iremos expandiendo capitulo tras capitulo.

Para quién es este curso

Este Curso está dirigido a cualquier persona que quiera aprender a desarrollar en Flask sus primeras aplicaciones y conocer uno de los frameworks más famosos en el desarrollo de aplicaciones web con Python.

Para aquellas personas que conozcan cómo programar en Python u otros frameworks web.

Para aquellas personas que quieran aprender algo nuevo.

Para las personas que quieran mejorar una habilidad y que quieran crecer como desarrollador y que quiera seguir escalando su camino en el desarrollo de aplicaciones con Python.

 

 

Contenido Legacy

Este es el contenido original del curso que fue regrabado con el contenido que veremos al final de la publicación:

  • 1. Python básico

    En la primera sección vamos a dar los primeros pasos con Python, empleando  Visual Studio Code, que será nuestro editor de código para llevar a cabo todo el curso. Veremos el uso de las variables, tipos de datos, estructuras de control, ciclos, operadores, listas, funciones clases entre otros componentes fundamentales que tenemos que conocer para crear nuestras aplicaciones web en Django; en específico, vamos a ver:

    1. Introducción
    2. Variables
    3. Tipos de datos
    4. Operadores
    5. Más datos sobre el String
    6. String Format (Formato de los String)
    7. String replace
    8. Listas
    9. Condicionales
    10. For
    11. Funciones
    12. Clases
    13. Enum
    14. Diccionarios
    15. try except: errores y excepciones

    Usaremos Django Admin, que es un módulo que podemos emplear py configurar para realizar procesos CRUDs automatizados.

  • 2. Conociendo el mundo de Python, pip y flask

    Esta es la sección introductoria al mundo de la programación en Flask con Python; instalaremos nuestro framework mediante pip, crearemos nuestra primera mini aplicación que no llegará ni a diez líneas de código y la ejecutaremos en nuestro navegador.

    Progresivamente iremos ampliando la app, aprendiendo pase por parámetros mediante la URL, imprimir código HTML, renderizar nuestro primer template con Jinja2, archivos de configuración del proyecto y mucho más.

  • 3. Creando una app de almacén con Blueprint y Jinja2

    En esta sección vamos a crear nuestra primera aplicación que usaremos a lo largo del curso para ir aprendiendo los distintos componentes de Flask; crearemos nuestro primer módulo con Blueprint y daremos la primera organización inicial del CRUD de la app que estará orientada a una aplicación tipo almacén; en esta primera fase crearemos un diccionario que simulará nuestra fuente de datos; aprenderemos a trabajar con los filtros en Jinja2 y las estructuras de control en Jinja2; parte fundamental, para poder avanzar con los controladores en le curso, JinJa 2 es el motor de plantillas de Flask, es decir, las vistas.

  • 4. Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos

    En esta sección vamos a empezar de lleno a crear nuestro CRUD, y con esto aprenderemos el manejo manual de formularios y mediante un paquete para Flask conocido como Flask WFT que nos permitirá crear formularios y validaciones mediante la definición de una clase.

    Daremos los primeros pasos con SQLAlchemy que nos permite conectarnos a nuestra base de datos en MySQL (u otros motores de base de datos) y permite mapear el Objeto Relacional a un simple objeto que podremos trabajar perfectamente a lo largo de nuestra aplicación.

    Usaremos los formularios mediante un paquete de Flask WTF para la gestión de la data, mensajes Flash y CRUD completo para nuestra aplicación usando el modelo y controlador en conjunto de Jinja 2 como motor para la vista.

  • 5. Creando una app de almacén: Bootstrap 4, +SQLAlchemy y Flask WFT

    En esta sección seguiremos incluyendo otros componentes a nuestra aplicación como lo sería en este punto Bootstraps 4 o 5, daremos los primeros pasos con esta popular framework de CSS y cómo integrarlo en un proyecto en Flask; veremos sus principales componentes y profundizaremos un poco más en SQLAlchemy.

    Adaptaremos el esqueleto de la aplicación para los componentes de Bootstrap como navbar, alert, modal, tablas, botones, textos, contenedores, links de navegación, entre otros.

  • 6. Autenticación en Flask: Creando un módulo de login

    En esta sección vamos a crear nuestro módulo de login para nuestra app completamente manual y también emplearemos el paquete conocido como Flask-Login que nos ofrece un conjunto de estructuras listas para usar; crearemos un sencillo sistema de roles y crearemos nuestro primer decorador para proteger el módulo de administración con un usuario autenticado y de tipo administrador.

    Protegeremos controladores con el decorador de login, pantallas para cerrar sesión, iniciar sesión, confirmación de contraseña y mucho más.

  • 7. Creando una Rest Api

    En esta sección vamos a crear nuestra Rest Api; para eso vamos a crear el proceso de gestión (CRUD) de nuestros productos; vamos a normalizar nuestra Rest Api para trabajar con un esquema básico, y devolver códigos de HTTP personalizados.

  • 8. Conectarse a la Rest Api con Vue

    En esta sección, la más esperada por muchos, veremos como integrar nuestra aplicación con Vue mediante la Rest Api que construimos en la sección anterior; crearemos una web SPA para realizar el mismo CRUD que hicimos anteriormente pero con Vue; daremos los primeros pasos con Vue conociendo sus elementos básicos hasta conseguir nuestro CRUD todo con Vue 3.

  • 9. Estilos en Vue

    En esta sección vamos a trabajar con el estilo en Vue; empleando Vuestic.

  • 10 Paquetes y aspectos generales

    Tenemos un par de secciones en donde cubrimos temas que aunque no los vimos en el curso como tal, los podemos tratar para mostrar otros aspectos fundamentales, enviar emails, criptografia, paginación, csv y mucho más

    Tambien tenemos una sección para trabajar con paquetes de imágenes, Bootstrap, CORS, Rest Api, Google recaptcha, etc.

  • 11 Autenticación Social con Flask Social

    El login social son aspectos cada vez más y más demandados; con esto facilitamos mucho la vida al usuario cuando quiere iniciar sesión; y empleando el Login Sosial de Google Twitter y Facebook es un hecho que lo configuraremos desde la aplicación en Django, hasta pasar por la administración de las mismas, desde su módulo web.

  • 12 Los Websockets en Flask: app inicial de chat

    Crear aplicaciones como chat, para el pase de mensajes no es posible con el enfoque tradicional; asi que, veremos como emplear otro servidor de desarrollo para habilitar la comunicación FullDuplex.

Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:

Introducción al curso

  • 1 Introducción

  • 2 Realizar preguntas

Introducción a Flask

  • 1 Introducción

  • 2 Software necesario

  • 3 Verificar el comando de acceso a Python 3 y Pip.

    Vamos a hacer unas pruebas para acceder a Python 3.

  • 4 Preparar el entorno

    Vamos a crear el ambiente virtual.

  • 5 Comandos básicos

    Vamos a conocer algunos comandos básicos para trabajar en un proyecto en Python en general.

  • 6 Hola Mundo

    Vamos a crear un hola mundo.

  • 7 Seleccionar el intérprete de Python en VSC

    Vamos a configurar VSC para que reconozca los paquetes del proyecto.

  • 8 ​​Modos de configuraciones

    Vamos a conocer un par de maneras para manejar las configuraciones del proyecto y activar el modo debug.

  • 9 Características principales de Flask

    Vamos a hablar sobre las características de Flask.

  • 10 Creando una aplicación modular: Presentación

    Vamos a presentar el esquema de una aplicación modular.

  • 11 Creando una aplicación modular: Crear el esquema

    Vamos a crear el esquema presentado antes.

  • 12 Creando una aplicación modular: Configuración

    Vamos a activar las configuraciones.

  • 13 Creando una aplicación modular: Controladores

    Vamos a crear los controladores de tipo CRUD para las tareas.

  • 14 Tipos de rutas y parámetros

    Vamos a presentar los tipos de rutas y como definir parámetros en las rutas.

  • 15 Publicar en github

Primeros pasos con Python (Reforzamiento)

  • 1 Introducción

  • 2 Consola interactiva/consola de Python

    Vamos a presentar como usar la consola de Python, ideal para hacer pruebas.

  • 3 Archivos de Python

    Vamos a conocer como crear los archivos para programar en Python.

  • 4 Variables y tipo de datos

    Vamos a conocer cómo emplear las variables y sus tipos de datos.

  • 5 Operaciones matemáticas

    Vamos a conocer cómo funcionan las operaciones matemáticas en Python.

  • 6 Concatenación de String

    Vamos a conocer cómo funcionan las concatenaciones de String en Python.

  • 7 Casteos

    Vamos a aprender a realizar casteos o conversión entre distintos tipos.

  • 8 Listas

    Vamos a aprender a trabajar con las listas.

  • 9 Condicionales

    Vamos a conocer el uso de los condicionales.

  • 10 Ciclos

    Vamos a conocer el uso de los ciclos while y for.

  • 11 Funciones

    Daremos los primeros pasos con las funciones en Python

  • 12 Funciones parte 2

    Daremos los primeros pasos con las funciones en Python

  • 13 Diccionarios

    Vamos a conocer el uso de los diccionarios.

  • 14 Clases, Primeros pasos

    Vamos a hablar sobre las clases, su propósito, importancia y características bases.

  • 15 Clases, Primeras clases

    Vamos a crear la primera clase y definir sus atributos y métodos.

  • 16 Clases, Método constructor

    Vamos a conocer como trabajar con los métodos constructores.

  • 17 Clases, Herencia

    Vamos a conocer cómo emplear la herencia de clases.

  • 18 Módulos en Python, Primeros pasos

    Vamos a hablar sobre los módulos en Python.

  • 19 Módulos en Python, Ejercicio

Template en Flask con Jinja

  • 1 Introducción

  • 2 Sobre Jinja 2

    Vamos a dar una introducción al motor de plantillas de jinja.

  • 3 Configurar Jinja en Flask

    Vamos a configurar Jinja en el proyecto que pasa con crear la carpeta de templates.

  • 4 Primeras pruebas con los templates

    Veremos de manera práctica cómo crear templates y usarlos desde Flask y pasar datos.

  • 5 Primeras pruebas con los templates, parámetros vía GET

    Vamos a ver otra demo en la cual, se consume un parámetro por GET desde el controlador.

  • 6 Bloques de control: Condicionales

    Veremos el primer bloque de control, el condicional.

  • 7 Bloques de control: Ciclo for

    Veremos el bloque de control for.

  • 8 Filtros: Presentación

    Vamos a introducir los filtros en Jinja.

  • 9 Filtro default

    Vamos a presentar el primer filtro, el que permite imprimir un contenido por defecto cuando la expresión es nula.

  • 10 Filtro escape

    Vamos a conocer cómo imprimir textos HTML o similares de manera segura.

  • 11 Filtro conversion

    Conversión entre tipos numéricos.

  • 12 Filtro max y min

    Devolver el máximo o mínimo de una lista.

  • 13 Filtro round

    Redondeamos un valor.

  • 14 Filtro replace

    Reemplazamos un texto por otro.

  • 15 Filtro join

    Filtro join

  • 16 Filtro lower y upper

    Vamos a conocer cómo convertir textos a minusculas y mayusculas.

  • 17 Filtro reverse

    Vamos a conocer cómo invertir un texto o lista.

  • 18 Filtro length

    Vamos a conocer cómo obtener el tamaño de un texto o lista.

  • 19 Filtro sort

    Vamos a conocer cómo ordenar una lista.

  • 20 Filtro slice

    Vamos a conocer cómo dividir una lista en sublistas.

  • 21 Establecer variables

    Vamos a conocer cómo establecer variables en el template.

  • 22 Bloque

    Daremos una introducción a los bloques.

  • 23 Bloque raw

    Vamos a presentar el bloque con el cual podremos imprimir el contenido sin procesar.

  • 24 Bloque macro

    Vamos a conocer el equivalente de las funciones en Jinja 2.

  • 25 Templates

    Vamos a dar una introducción a los templates.

  • 26 Herencia en los templates

    Vamos a crear un template maestro para la aplicación.

  • 27 Listado de tareas

    Vamos a mostrar un listado de tareas en el template creado anteriormente.

  • 28 Crear tarea

    Vamos a crear un sencillo esquema con un formulario, para crear una tarea.

  • 29 Actualizar tarea

    Proceso similar al anterior, pero, para actualizar una tarea definida localmente en el controlador.

  • 30 url_for, rutas con nombre

    Presentamos el uso de la función url_for para usar rutas con nombre.

  • 31 Redirecciones

    Veremos cómo emplear las redirecciones.

  • 32 Eliminar tarea

    Implementamos la opción de eliminar una tarea.

  • 33 Publicar en github

  • 34 Clases basadas en vistas - Presentación

    Vamos a hablar sobre las clases basadas en vistas y dar algunos ejemplos.

  • 35 Clases basadas en vistas - Implementación

    Vamos a implementar la aplicación de tareas empleando las VBC.

  • 36 Extra: Filtros personalizados

    Vamos a aprender a crear un filtro personalizado.

Base de datos

  • 1 Presentacion

  • 2 Instalar dependencias

    Vamos a instalar las dependencias para SQLAlchemy.

  • 3 Configurar conexión

    Vamos a crear el enlace de conexión con la base de datos.

  • 4 Modelos (tablas) de la base de datos

    Vamos a crear el modelo.

  • 5 Crear tabla y pruebas

    Vamos a crear la tabla en la base de datos y realizar varias pruebas.

  • 6 Operaciones a la base de datos

    Vamos a crear las operaciones tipo CRUD para las tareas.

  • 7 Probar operaciones

    Vamos a probar las operaciones CRUD anteriores

  • 8 Publicar en Github

Flask-Migrate

  • 1 Introducción

  • 2 Sobre Flask Migrate

    Vamos a hablar sobre el paquete y su importancia.

  • 3 Instalar dependencia

    Vamos a instalar la dependencia.

  • 4 Configurar

    Vamos a configurar el paquete en el proyecto.

  • 5 Problemas con el comando Flask db

    Vamos a hablar sobre algunos problemas que pueden ocurrir al momento de instalar Flask Migrate.

  • 6 Comandos claves

    Vamos a conocer los comandos claves en Flask Migrate.

  • 7 Generar migraciones

    Vamos a generar las migraciones para el proyecto.

  • 8 Aplicar migraciones en la base de datos

    Vamos a reflejar las migraciones en la BD.

  • 9 Más comandos

    Vamos a conocer otros comandos claves en Flask Migrate.

  • 10 Publicar en github

Formularios

  • 1 Introducción

  • 2 Presentación

    Vamos a hablar sobre el paquete de WTForms para trabajar con los formularios en Flask.

  • 3 Instalar dependencia

    Instalaremos la dependencia de WTForms.

  • 4 Principales campos y validaciones

    Explicaremos de manera teórica cómo está formado un formulario.

  • 5 Crear la primera clase formulario

    Crearemos el primer formulario.

  • 6 Instanciar y usar el formulario desde el template

    Vamos a crear una instancia y emplear el formulario.

  • 7 Proceso de actualizar

    Vamos a crear el proceso de actualizar.

  • 8 Reutilizar formulario

    Vamos a crear los campos de formularios para las tareas reutilizables para el proceso de crear y actualizar.

  • 9 Proceso de listado

    Vamos a modificar el proceso de listado.

  • 10 Proceso de eliminar

  • 11 Upload de archivos: Configuración inicial

    Vamos a explicar cuales son las configuraciones a realizar y aplicarlas en el proyecto.

  • 12 Upload de archivos: Crear proceso

    Crearemos el proceso de upload.

  • 13 Publicar en Github

Relaciones

  • 1 Introducción

  • 2 Presentación

  • 3 Uno a uno: Formularios y procesos

    Vamos a crear el resto del proceso para crear el documento en la base de datos.

  • 4 Uno a uno: Formularios y procesos

    Vamos a crear el resto del proceso para crear el documento en la base de datos.

  • 5 Ver el documento de una tarea

    Vamos a mostrar el detalle de un documento desde la tarea.

  • 6 Eliminar el documento de una tarea

    Vamos a eliminar una tarea, el documento y el archivo.

  • 7 Relaciones de tipo uno a muchos: Modelos y base de datos

    Vamos a crear el modelo y relación foránea para las categorías.

  • 8 Relaciones de tipo uno a muchos: Formularios y procesos

    Vamos a crear el resto del proceso para asignar una categoría a una tarea en la base de datos.

  • 9 Relaciones de tipo muchos a muchos: Modelos y base de datos

    Vamos a crear el modelo para las etiquetas, la tabla pivote y migrar los cambios a la BD.

  • 10 Relaciones de tipo muchos a muchos: Asignar una etiqueta

    Vamos a crear el proceso de asignar una etiqueta a una tarea.

  • 11 Relaciones de tipo muchos a muchos: Remover una etiqueta

    Vamos a crear el proceso de remover una etiqueta a una tarea.

  • 12 Publicar en github

Mensajes flash y sesión

  • 1 Introducción

  • 2 Mensajes flash

    Implementamos los mensajes tipo flash.

  • 3 Categorías: Filtros

    Vamos a aprender a agregar una categoría a los mensajes flash y filtrar por los mismos.

  • 4 Categorías: Por tipo

    Vamos a clasificar los mensajes por tipo.

  • 5 Publicar en github

  • 6 Extra: Sesión

Autenticación: Flask Login

  • 1 Introducción

  • 2 Instalar dependencia

    Vamos a instalar la extensión de Flask Login.

  • 3 Configuración básica

    Vamos a realizar la configuración base para Flask Login.

  • 4 Crear formularios

    Creamos los formularios para login y registrar.

  • 5 Configuraciones adicionales

    Creamos el resto de las configuraciones de Flask Login.

  • 6 Registrar usuarios

    Vamos a crear el módulo para registrar un usuario.

  • 7 Login de usuarios

    Vamos a crear el módulo para el login de un usuario.

  • 8 Proteger rutas

    Aprenderemos a proteger las rutas por login.

  • 9 Logout

    Implementamos la opción de logout.

  • 10 Logout

    Implementamos la opción de logout.

  • 11 Publicar en github

Rest Api

  • 1 Introducción

  • 2 Presentación

    Definiremos los conceptos claves y el paquete a emplear.

  • 3 Instalar dependencia

    Vamos a instalar la extensión de Flask Restful.

  • 4 Crear la primera Api Rest

    Crearemos una API de ejemplo.

  • 5 Implementar recursos para la tarea: GET

    Definimos el primer recurso para la API.

  • 6 Postman

    Vamos a hablar sobre el software de postman para probar la rest api.

  • 7 Paquete requests

    Vamos a hablar e instalar el paquete de requests para probar la rest api.

  • 8 Serializar respuestas: mediante el modelo

    Vamos a crear un esquema para serializar los parámetros.

  • 9 Serializar respuestas: mediante el decorador marshal_with

    Vamos a conocer el esquema oficial para serializar los campos.

  • 10 Implementar recursos para la tarea: Create

    Vamos a crear una tarea mediante una petición de tipo post.

  • 11 Implementar recursos para la tarea: Update

    Vamos a actualizar una tarea mediante una petición de tipo put.

  • 12 Implementar recursos para la tarea: Delete

    Vamos a eliminar una tarea mediante una petición de tipo delete.

  • 13 Parámetros del request, parsing y validaciones, presentación

    Vamos a conocer cómo emplear el parsing de Flask Restful.

  • 14 Parámetros del request, parsing y validaciones, definición

    Vamos a definir los argumentos.

  • 15 Parámetros del request, parsing y validaciones, implementar

    Vamos a emplear los argumentos en los recursos de crear y actualizar.

  • 16 Otros recursos, paginación

    Vamos a crear otro recurso para paginar.

  • 17 Tarea: API para las categorías

    Vamos a crear una API tipo CRUD para las categorías.

  • 18 Tarea: API para las etiquetas

    Vamos a crear una API tipo CRUD para las etiquetas.

  • 19 Carga de archivos: request

    Vamos a conocer cómo emplear el upload de archivos empleando el request.

  • 20 Carga de archivos: reqparse

    Vamos a conocer cómo emplear el upload de archivos empleando el reqparse.

  • 21 Retornar las etiquetas en el listado de tareas

    Vamos a devolver las etiquetas desde el listado.

  • 22 Autenticación: Presentación

    Vamos a conocer un poco más sobre cómo proteger una Rest Api.

  • 23 Autenticación: Instalar paquete

    Vamos a instalar el paquete y configurarlo.

  • 24 Autenticación: Generar token

    Vamos a generar el token de acceso.

  • 25 Proteger y acceder a la Rest API protegida

    Vamos a proteger la API y acceder al recurso mediante el token.

  • 26 Obtener la identidad del token

    Vamos a obtener la identidad del token.

  • 27 Tiempo de expiración del token

    Vamos a conocer como personalizar el tiempo de expiración del token.

  • 28 Pruebas a la API: requests

    Vamos a crear la estructura base para las pruebas con requests.

  • 29 Pruebas a la API: requests, GET

    Vamos a consumir el primer recurso sin auth.

  • 30 Pruebas a la API: requests, GET protegida

    Vamos a consumir el primer recurso con auth.

  • 31 Pruebas a la API: requests, POST

    Vamos a crear una tarea desde el recurso de la Rest.

  • 32 Pruebas a la API: requests, PUT

    Vamos a actualizar una tarea desde el recurso de la Rest.

  • 33 Pruebas a la API: requests, DELETE

    Vamos a eliminar una tarea desde el recurso de la Rest.

  • 34 Publicar en github

Pruebas unitarias

  • 1 Introducción

  • 2 ¿Por qué hacer pruebas?

    Hablamos sobre qué son las pruebas unitarias, el paquete a emplear y la importancia de emplear las mismas.

  • 3 Instalar dependencia

    Vamos a instalar la extensión de Flask Restful.

  • 4 Creando las primeras pruebas unitarias

    Vamos a crear unas pruebas unitarias para probar operaciones matemáticas.

  • 5 conftest.py, generar un cliente para las pruebas

    Vamos a generar el archivo para generar el cliente.

  • 6 Pruebas unitarias para el Hola Mundo

    Vamos a crear una prueba para probar el hola mundo de nuestra app en Flask.

  • 7 Pruebas para el módulo de dashboard: Configuración base

    Vamos a deshabilitar el token de los formularios para realizar las pruebas unitarias.

  • 8 Pruebas para el módulo de dashboard: Crear

    Vamos a crear la prueba para crear una tarea.

  • 9 Pruebas para el módulo de dashboard: Actualizar

    Vamos a crear la prueba para actualizar una tarea.

  • 10 Detalle al importar el app

  • 11 Pruebas para el módulo de dashboard: Listado

    Vamos a crear la prueba para el listado de las tareas.

  • 12 Pruebas para el módulo de dashboard: Eliminar

    Vamos a crear la prueba para eliminar una tarea.

  • 13 Resto de los módulos dashboard

    Vamos a hablar sobre el resto de los módulos de tipo dashboard a probar.

  • 14 Login requerido

  • 15 Pruebas para la Api Restful: Listado

    Vamos a crear la prueba para el listado en la API de las tareas.

  • 16 Pruebas para la Api Restful: Detalle

    Vamos a crear la prueba para el detalle en la API de las tareas.

  • 17 Pruebas para la Api Restful: Crear

    Vamos a crear la prueba para crear en la API de las tareas.

  • 18 Pruebas para la Api Restful: Crear, token autorización

    Vamos a crear la prueba para crear en la API de las tareas con el token requerido (autenticación requerida).

  • 19 Pruebas para la Api Restful: Actualizar

    Vamos a crear la prueba para actualizar en la API de las tareas.

  • 20 Pruebas para la Api Restful: Eliminar

    Vamos a crear la prueba para eliminar en la API de las tareas.

  • 21 Conclusiones

  • 22 Publicar en github

Archivos estáticos, Bootstrap 5

  • 1 Introducción

  • 2 Presentación

  • 3 Archivos estáticos

    Presentamos el uso de los archivos estáticos en Flask.

  • 4 Instalar Bootstrap

    Vamos a instalar Bootstrap CDN en el framework.

  • 5 Bootstrap, Container

    Vamos a implementar el contenedor para nuestra web.

  • 6 Bootstrap, Tabla

    Vamos a implementar una tabla para el listado.

  • 7 Bootstrap, Carta

    Vamos a implementar el componente de carta.

  • 8 Menú de navegación

    Vamos a crear un menú de navbar para la app con su menú de hamburguesa de tipo colapsable.

  • 9 Paginación

    Crearemos el componente de paginación para las tareas.

  • 10 Botones

    Vamos a implementar el componente de botones.

  • 11 Formularios

    Vamos a implementar el componente de formulario.

  • 12 Formularios parte 2

    Vamos a terminar algunas implementaciones sobre los formularios.

  • 13 Errores de formulario

    Vamos a crear un esquema para mostrar los errores de formulario.

  • 14 Mensajes de confirmación

    Vamos a mostrar mensajes tipo flash mediante un componente de alerta.

  • 15 Login y registro

    Definiremos un estilo para la página de login y registro.

  • 16 Detalles finales: Clases de utilidades

    Vamos a usar clases de utilidades para personalizar el estilo de los componentes.

  • 17 Crear drowpdown para el usuario

    Vamos a crear un drowpdown para el usuario autenticado.

  • 18 Drowpdown: Mostrar información del usuario

    Vamos a mostrar un mensaje para saludar al usuario autenticado.

  • 19 Sistema de columnas para los formularios

    Vamos a usar el sistema de columnas de Bootstrap para organizar nuestro contenido en los formularios.

  • 20 Estilo personalizado

    Vamos a crear una hoja de estilo personalizada.

  • 21 Publicar en github

Localización y traducciones

  • 1 Introducción

  • 2 Presentación

    Vamos a presentar el uso de Flask Babel para traducir la aplicación en múltiples idiomas.

  • 3 Instalación y configuración básica

    Vamos a instalar y configurar flask babel en el proyecto.

  • 4 Marcar los textos a traducir, primeras pruebas

    Vamos a conocer como marcar los textos en los archivos py y html.

  • 5 Marcar los textos a traducir de la aplicación

    Vamos a marcar los textos en toda la aplicación.

  • 6 Generar archivos de traducción y traducir la app

    Vamos a crear los archivos para generar la traducción a la aplicación.

  • 7 Pruebas en la aplicación

    Vamos a realizar algunas pruebas para verificar las traducciones.

  • 8 Publicar en Github

Extensiones

  • 1 Introducción

  • 2 Opcional: Duplicar proyecto

    Vamos a hablar de que en esta sección se va a emplear una copia del proyecto.

  • 3 Flask Caching

    Vamos a hablar de cómo podemos almacenar resultados en caché.

  • 4 Flask Mail

    Vamos a hablar de cómo puedes enviar correos electrónicos mediante Flask.

  • 5 Flask Debug Toolbar

    Vamos a conocer el plugin de Flask Debug Toolbar.

  • 6 Flask Seeder

    Vamos a conocer como generar datos de prueba.

  • 7 Flask CLI

    Vamos a hablar sobre el plugin para crear comandos.

Roles y Perfil de usuario

  • 1 Introducción

  • 2 Modificar modelo de usuarios: Datos básicos

    Vamos a crear los campos para el nombre, apellido e email.

  • 3 Modificar modelo de usuarios: Redes sociales

    Vamos a crear los campos y clases para las redes sociales.

  • 4 Modificar modelo de usuarios: Dirección

    Vamos a crear el campo y clase para las direcciones.

  • 5 Modificar modelo de usuarios: Idiomas

    Vamos a crear el campo y clase para el idioma.

  • 6 Modificar modelo de usuarios: Tareas del usuario

    Vamos a crear la FK para el usuario en las tareas.

  • 7 Perfil de usuario: Estructura base

    Vamos a crear el layout base y la vista para el perfil.

  • 8 Perfil de usuario: Nombre, apellido e email, parte 1

    Vamos a crear el fragmento de template, formulario y controlador inicial.

  • 9 Perfil de usuario: Nombre, apellido e email, parte 2

  • 10 Perfil de usuario: Direcciones

    Vamos a crear el proceso para las direcciones.

  • 11 Sistema de columnas para los formularios

    Vamos a adaptar los formularios actuales a un sistema de columnas de Bootstrap.

  • 12 Perfil de usuario: Cambiar la contraseña

    Vamos a crear el formulario para cambiar la contraseña.

  • 13 Perfil de usuario: Redes sociales: Listado inicial

    Vamos a construir el listado inicial para las redes sociales.

  • 14 Perfil de usuario: Redes sociales: Listado inicial

    Vamos a construir el listado inicial para las redes sociales.

  • 15 Perfil de usuario: Redes sociales: Proceso de creación y actualización

    Vamos a completar el proceso para crear y actualizar una red social.

  • 16 Perfil de usuario: Redes sociales: Mostrar detalle en el form

    Vamos a mostrar el detalle de la red social registrada en la BD.

  • 17 Perfil de usuario: Redes sociales: Eliminar

    Vamos a implementar la opción de eliminar.

  • 18 Perfil de usuario: Redes sociales: Validaciones

    Vamos a habilitar las validaciones a las redes sociales.

  • 19 Avatar: Upload de archivos

    Vamos a realizar la carga del avatar para el usuario.

  • 20 Avatar: Mostrar

    Vamos a mostrar el avatar del usuario en el template de perfil.

  • 21 Avatar: Eliminar

    Vamos a implementar la opción para eliminar el avatar.

  • 22 Perfil de usuario: Seleccionar idioma

    Vamos a crear el proceso administrativo para seleccionar el idioma.

  • 23 Cambiar el idioma de la aplicación desde el usuario

    Configuramos a nivel de la aplicación la verificación del idioma del usuario para establecer en la aplicación.

  • 24 Conclusión

    Vamos a hablar sobre todo el desarrollo que hemos llevado a cabo hasta este momento.

  • 25 Tareas del usuario

    Vamos a asignar el identificador del usuario a la tarea al momento de la creación.

  • 26 Roles: Presentación

    Vamos a presentar el esquema que vamos a seguir para el sistema de roles.

  • 27 Roles: Modelos, migraciones y tablas

    Vamos a crear la estructura para los roles.

  • 28 Roles: Data de ejemplo

    Vamos a crear el usuario de ejemplo, los roles y la relación entre ambos.

  • 29 Roles: Crear decorador para validar roles

    Vamos a crear el decorador para verificar los roles del usuario e implementarlo en el primer controlador/vista.

  • 30 Roles: Implementar en el resto de los controladores

    Vamos a proteger los controladores para las tareas con los roles.

  • 31 Roles: Verificar rol de ADMIN o EDITOR

    Vamos a verificar el tipo de rol desde el listado de tareas para obtener todas las tareas o las del usuario.

  • 32 Roles: Ocultar enlaces si el usuario no tiene el rol

    Vamos a ocultar las acciones que no pueda realizar el usuario mediante el template.

  • 33 Conclusiones

    Vamos a dar una conclusión para el apartado de los roles.

  • 34 Verificar usuario por email: Presentación

    Vamos a presentar los desarrollos que vamos a realizar en este apartado.

  • 35 Verificar usuario por email: Cambios en el modelo

    Vamos a aplicar el cambio en el modelo y base de datos.

  • 36 Verificar usuario por email: Token

    Vamos a crear las funciones para generar y procesar el token.

  • 37 Verificar usuario por email: Cambios en el registro

    Vamos a generar el token desde el registro de usuario.

  • 38 Verificar usuario por email: Controlador para verificar el token

    Vamos a crear el controlador para verificar el usuario por el token.

  • 39 Verificar usuario por email: Email (demo)

    Vamos a hablar sobre la verificación del usuario por email.

  • 40 Publicar en Github

Decoradores personalizados

  • 1 Introducción

  • 2 Decoradores sin parámetros

    Vamos a conocer como crear un decorador para las vistas sin parámetros.

  • 3 Decoradores con parámetros

    Vamos a conocer como crear un decorador para las vistas con parámetros.

Variables de entorno

  • 1 Configuración básica

    Vamos a mostrar la configuración básica para emplear las variables de entorno mediante archivos y varios ejemplos.

  • 2 Acceder a las variables de entorno desde el proyecto

    Vamos a conocer como acceder a las variables de entorno.

(Exclusivo de Academia y Libro) Filtrar con formularios

  • 1 Introducción

  • 2 Estructura del proyecto

    Vamos a enseñar la estructura del proyecto. https://github.com/libredesarrollo/curso-libro-flask-blog/releases/tag/v0.0

  • 3 Crear página de index para el blog

    Vamos a crear la página de index inicial.

  • 4 Flask Seeder: Generar datos de prueba para los posts

    Vamos a generar el resto de la data de prueba.

  • 5 Campos adicionales para la publicación

    Vamos a crear algunos campos adicionales para la publicación.

  • 6 Configurar Bootstrap 5 y plantilla maestra

    Vamos a instalar B5 y crear la plantilla maestra.

  • 7 Crear formulario

    Vamos a crear y popular el formulario de filtro.

  • 8 Obtener datos del formulario y armar lógica filtros

    Vamos a aprender a recibir los datos del formulario y armar la lógica condicional.

  • 9 Crear listado y filtrar por post y categoría

    Vamos a crear el listado de publicaciones y filtrar los datos.

  • 10 Filtro para el listado por etiquetas

    Vamos a crear un campo de selección para las etiquetas.

  • 11 Select múltiple para las etiquetas

    Vamos a crear un campo de selección múltiple para las etiquetas.

  • 12 Limpiar filtro

    Vamos a implementar un enlace para limpiar el filtro.

  • 13 Categoría vacía

    Vamos a definir una categoría vacía.

  • 14 Crear enlaces para filtros de etiquetas y categorías

    Vamos a colocar los enlaces para filtrar desde las categorías y etiquetas desde el listado.

  • 15 Paginado

    Vamos a habilitar la paginación.

Introducción al curso

  • 1 Introducción

  • 2 Estructura del curso

    Este es un curso bastante grande con muchos módulos de lo cual vamos de lo más básico a aspectos más avanzados....

  • 3 Requisitos para tomar el curso

    Para tomar el curso lo único que necesitas es tener conocimientos básicos en la programación, no es indispensable saber Python ya que tenemos una sección de reforzamiento pero sí que conozcas aspectos de tecnologías web como HTML, CSS y un poco de JavaScript asi que hayas creado cualquier app.

  • 4 Instalar Python

    Vamos a enseñar como podemos instalar Python y algunas consideraciones a tener en cuenta.

  • 5 Configurar nuestro Editor

    Vamos a crear la carpeta de nuestro proyecto que vamos a emplear en esta sección para realizar las distintas pruebas y conocer Python.

  • 6 Instalar Visual Studio Code

    Vamos a instalar el IDE que vamos a emplear en este curso para desarrollar nuestras aplicaciones en Python y Flask.

Python básico

  • 1 Sobre la sección

    En esta sección vamos a dar un repaso básico a Python; siéntete libre de saltar esta sección si consideraras que ya cuentes con dichos conocimientos y quieres ir a desarrollar de una tu primera aplicación en Django.

  • 2 Variables

    Vamos a conocer como podemos crear variables en Python.

  • 3 Tipos de datos

    Vamos a conocer los tipos de datos en Python; string, flotantes, enteros y booleanos.

  • 4 Operadores

    Vamos a conocer el uso de los operadores matemáticos en Python.

  • 5 Más datos sobre el String

    Vamos a dar algunos datos extras sobre el string para contar longitudes, reemplazar ocurrencias etc.

  • 6 String Format (Formato de los String)

    Vamos a conocer otra característica interesante sobre los String que sería el formato para imprimir o concatenar distintos tipos de datos y dando como salida un String.

  • 7 Listas

    Vamos a presentar una estructura que nos permitirá guardar colecciones de enteros, string, etc en una variable.

  • 8 Condicionales

    Vamos a ver cómo podemos emplear los condicionales en Python.

  • 9 For Python

    Vamos a ver el uso de los ciclos for en python para iterar listas.

  • 10 Funciones

    Vamos a conocer el uso de las funciones en Python, pase de parámetros y retornos de valores.

  • 11 Clases

    Vamos a crear nuestra primer clase, así como atributos métodos y constructores y crear una instancia de la misma.

  • 12 Enums

    Vamos a ver el uso de los tipos enumerados en Python para crear constantes.

  • 13 Diccionarios

    Vamos a conocer la estructura llamada diccionario para crear estructuras de tipo clave valor.

  • 14 Try except: errores y excepciones

    Vamos a conocer cómo podemos manejar los errores en tiempo de ejecución en nuestra app.

Conociendo el mundo de Python, pip y Flask

  • 1 Introducción

  • 2 Sobre Flask

    Vamos a hablar un poco sobre Flask y conocer su ecosistema.

  • 3 Sobre los ambientes virtuales de Python y el curso

    Vamos a hablar sobre el uso de los venv en nuestro curso.

  • 4 Nuestra primera aplicación

    Vamos a crear la primera aplica en Flask y explicar lo más básico de una app en Flask, en manejo de la ruta inicial y su función.

  • 5 Presentación de la pip e Instalar Flask mediante la pip

    Vamos a presentar el sistema de gestor de paquetes de Python, pip y vamos a instalar Flask mediante pip.

  • 6 Versión actual de flask y actualizar

    Vamos a aprender a actualizar una versión de Flask mediante la terminal.

  • 7 Python app.py vs flask run

    Vamos a presentar las dos formas en la que tenemos para ejecutar una app en Flask, mediante el comando de Python y de Flask.

  • 8 Modo desarrollo para activar la recarga (reload)

    Vamos a presentar el modo de desarrollador para habilitar la recarga de nuestro servidor cada vez que hagamos cambios en el código fuente.

  • 9 Pase de datos y valor por defecto

    Vamos a presentar el pase de parámetros mediante la URL a una app en Flask.

  • 10 Imprimir nuestro primer código HTML

    Vamos a imprimir un código HTML en vez de simple texto.

  • 11 Organizando archivos estáticos

    Vamos a aprender a organizar nuestra aplicación para que pueda tomar archivos estáticos con CSS, js, imágenes, etc.

  • 12 render_template para renderizar templates con Jinja2

    Vamos a presentar el motor de templates de Flask conocido como Jinja2.

  • 13 Creando una aplicación modular

    Vamos a aprender a crear una app que conste de varios módulos.

  • 14 Introducción a Blueprint para crear apps modulares

    Vamos a presentar Blueprint para tener una app modular más organizada.

  • 15 Manejando configuraciones básicas

    Vamos a aprender a realizar las configuraciones básicas y de la manera más sencilla en una app Flask.

  • 16 Manejando las configuraciones en archivos de configuración: from_pyfile

    Vamos a manejar las configuraciones básicas de la app mediante un archivo global.

  • 17 Manejando las configuraciones en archivos de configuración: from_object

    Vamos a manejar las configuraciones básicas de la app mediante un archivo global y manejar distintos ambientes.

  • 18 ¿Qué hemos aprendido?

Creando una app de almacen con Blueprint y Jinja2

  • 1 Introducción y que vamos a aprender

  • 2 Creando una app para manejar productos: Estructura básica

    Vamos a crear la estructura base de la app que vamos a emplear en las siguientes secciones que será una app de almacén de productos.

  • 3 Consultar datos de un modelo (diccionario) con datos estáticos

    Vamos a crear un modelo en Python con datos estáticos con los cuales podamos realizar un par de consultas.

  • 4 Definiendo el template para el listado y el método

    Vamos a crear una vista o template para el listado de los productos y la función y ruta asociada a la misma.

  • 5 Definiendo el template para el detalle y el método

    Vamos a crear la vista o template para el detalle de un producto y la función con pase de parámetros y ruta a la misma.

  • 6 Los filtros en Jinja2: default, para dar valores por defecto

    Vamos a presentar los filtros en JinJa2, para realizar distintas operaciones de cómputo fácilmente desde la vista o template; vamos a conocer el filto default, para dar valores por defecto en caso de que un valor sea vacío o nulo.

  • 7 Los filtros en Jinja2: safe, para imprimir código HTML

    Vamos a presentar los filtros en JinJa2, para realizar distintas operaciones de cómputo fácilmente desde la vista o template.

  • 8 Los filtros en Jinja2: truncate, para cortar textos

    Vamos a conocer el filtro truncate, para cuando queramos cortar textos en tamaños determinados.

  • 9 Los filtros en Jinja2: count, para contar longitud de textos

    Vamos a conocer el filtro count, para contar la cantidad de caracteres de un String.

  • 10 Los filtros en Jinja2: float, para convertir valores a flotantes

    Vamos a conocer el filtro float, para convertir valores o textos a flotantes.

  • 11 Los filtros en Jinja2: int, para convertir valores a enteros

    Vamos a conocer el filtro int, para convertir valores o textos a enteros.

  • 12 Los filtros en Jinja2: round, para redondear números flotantes

    Vamos a conocer el filtro round, para redondear valores flotantes.

  • 13 Los filtros en Jinja2: join, para convertir array a texto

    Vamos a conocer el filtro join, para convertir un array a texto.

  • 14 Los filtros en Jinja2: length, para contar la cantidad de elementos de un array

    Vamos a conocer el filtro length, para determinar el tamaño de un array.

  • 15 Los filtros en Jinja2: tojson, para convertir objetos a json

    Vamos a conocer el filtro tojson, para convertir objetos a json.

  • 16 Crear un filtro personalizado para calcular el iva en JinJa2

    Vamos a crear un filtro personalizado por nosotros en el módulo y global a nuestra app.

  • 17 Jinja2: Crear un template base para nuestro módulo

    Vamos a crear el template base para nuestra aplicación en Jinja2

  • 18 Jinja2: Condicionales

    Vamos a conocer el uso de los condicionales en Jinja2.

  • 19 Jinja2: Variable loop en los for

    Vamos a conocer el uso de la variable especial llamada loop en los for y sus variables.

  • 20 Código fuente de la sección

    Código fuente de la sección

Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos

  • 1 Introducción y que vamos a aprender

  • 2 Crear la conexión y configuración a la base de datos

    Vamos a crear la configuración de la base de datos.

  • 3 Crear el modelo de productos

    Vamos a crear nuestro primer modelo y estructura de la base de datos y crear la tabla asociada a la misma mediante Flask.

  • 4 Obteniendo todos los registros de la tabla product

    Vamos a aprender a obtener todos los registros de la tabla product, la que creamos en el vídeo anterior.

  • 5 Definir la configuración de la base de datos en el archivo de configuración.

    Vamos a definir la configuración de la base de datos en el archivo de configuración de nuestra app.

  • 6 Obtener un registro

    Vamos a aprender a obtener un registro de la base de datos.

  • 7 SQLAlchemy: Introducción a las operaciones de consulta a la base de datos

    Vamos a dar una introducción de las principales funciones para obtener registros de la base de datos.

  • 8 SQLAlchemy: Crear registros

    Vamos a aprender a crear registros mediante Flask.

  • 9 SQLAlchemy: Actualizar registros

    Vamos a aprender a actualizar registros mediante Flask.

  • 10 SQLAlchemy: Borrar registros

    Vamos a aprender a eliminar registros mediante Flask.

  • 11 Crear vista de formulario para crear productos

    Vamos a crear la vista o el formulario para crear productos.

  • 12 Crear función en Flask para procesar el formulario y guardar producto

    Vamos a crear la función que va a recibir los datos del formulario que envía nuestro usuario.

  • 13 Realizar una redirección al formulario de creación de productos

    Vamos a crear una redirección para cuando creemos productos manda directamente a otra vista; por ejemplo, la vista de creación de productos.

  • 14 Crear mensajes flash

    Vamos a aprender a emplear los mensajes flash o la sesión flash para enviar mensajes a nuestro usuario.

  • 15 Configurar mensaje flash en vista

    Vamos a configurar la visualización de los mensajes flash mediante la vista.

  • 16 Funciones y vista para actualizar formulario

    Vamos ahora a desarrollar la funcionalidad para actualizar productos.

  • 17 Crear un formulario con Flask WFT

    Vamos a presentar un paquete que nos permitirá tener un gran manejo y control sobre los formularios, que no tendremos que crearlos de manera manual si no mediante un modelo base.

  • 18 Validar formulario con Flask WFT

    Vamos a aprender a agregar reglas de validación a los formularios.

  • 19 Incluir una vista dentro de otra vista

    Vamos a crear una vista con solamente los campos de formulario que luego vamos a incluir en la vista de edición y creación de campos de formulario.

  • 20 Actualizar formulario de producto con Flask WFT

    Vamos a crear todo el proceso para actualizar un producto existente mediante el WFT.

  • 21 Borrar productos

    Vamos a implementar la funcionalidad para eliminar productos y con esto completamos nuestro CRUD.

  • 22 Paginar registros

    Vamos a aprender a paginar registros y crear los enlaces de navegación.

  • 23 Código fuente de la sección

    Código fuente de la sección

Creando una app de almacén: Bootstrap 4 o 5, +SQLAlchemy y Flask WFT

  • 1 Introducción

  • 2 Bootstrap 4: Instalar

    Vamos a hacernos con nuestra copia de Bootstrap en su versión 4 e instalarlo en nuestra app Flask.

  • 3 Bootstrap 4: Configurar el layout de la app

    Vamos a configurar el layout de nuestra app, para que todo no aparezca tan estirado.

  • 4 Bootstrap 4: Mensajes de alerta y configurar nueva vista

    Vamos a mostrar los mensajes tipo flash por un componente de alert de Boostrap 4.

  • 5 Bootstrap 4: Configurar el diseño de los formularios

    Vamos a personalizar el diseño de los formularios.

  • 6 Bootstrap 4: Configurar navbar

    Vamos a crear un header con los componentes de navegación.

  • 7 Bootstrap 4: Configurar footer

    Vamos a definir un sencillo footer para nuestra app.

  • 8 Crear un macro para la paginación + componente en Bootstrap 4

    Vamos a aprender a crear macros en Flask, y el tema será un macro para la paginación de los registros.

  • 9 Bootstrap 4: Jumbotron para los listados de productos

    Vamos a crear el diseño para los componentes del listado de productos de nuestra app.

  • 10 Crear una hoja de estilo personalizada

    Vamos a crear una hoja de estilo personalizada en donde definir el CSS de nuestra app.

  • 11 Bootstrap 4: modal para eliminar los registros

    Vamos a implementar un modal de confirmación para cuando queramos eliminar registros.

  • 12 Instalar Fontawesome

    Vamos a instalar una iconografía para nuestra app.

  • 13 Bootstrap 4: Configurar los Tooltips de la app

    Vamos a configurar los tooltips en la app, que son esos pequeños globos informativos.

  • 14 Crear modelo y el WTF para las categorías

    Vamos a crear un modelo y la clase de formulario para las categorías.

  • 15 Crear CRUD para las categorías

    Vamos a crear el CRUD para las categorías en base al que ya tenemos para los productos.

  • 16 Crear las relaciones entre la tabla categoría y producto y campo en la WFT

    Vamos a crear las relaciones entre las tablas de productos y categorías.

  • 17 Crear el listado de categorías en el formulario

    Vamos a colocar el listado de categorías en el formulario de creación de los productos.

  • 18 Relaciones de Uno a Muchos (One to Many) entre categorías y productos

    Vamos a crear una relación de uno a muchos en Flask con SQLAlchemy.

  • 19 Demo: Relaciones de Muchos a Uno (Many to One) entre productos y categorías

    Vamos a crear una relación de muchos a uno en Flask con SQLAlchemy.

  • 20 Registrar cambios de la categorías del producto

    Vamos a aplicar los cambios en la base de datos.

  • 21 Colocar la categorías en el listado

    Vamos a imprimir la categoría de un producto en el listado.

  • 22 ¿Qué hemos aprendido?

  • 23 Código fuente de la sección

    Código fuente de la sección

Autenticación en Flask: Creando un módulo de login

  • 1 Introducción

    Introducción

  • 2 Autenticación simple en base a sesión: crear el módulo

    Vamos a crear un módulo aparte en nuestra app para manejar la autenticación y registro de nuestro usuario.

  • 3 Crear el modelo de usuario

    Vamos a crear un nuevo modelo para el usuario y vamos a crear un tipo enumerado para manejar el tipo de usuario.

  • 4 Crear el formulario de registro

    Vamos a crear un formulario para registrar usuarios.

  • 5 Crear función y vista de registro

    Vamos a crear una función en nuestro controlador y vista para registrar.

  • 6 Verificar si el usuario existe

    Vamos a verificar si un usuario existe al momento del registro y dar el error correspondiente.

  • 7 Login del usuario

    Vamos a crear la funcionalidad para realizar el login de un usuario y construcción de la sesión del usuario.

  • 8 Cerrar sesión

    Vamos a crear el cerrado de la sesión del usuario.

  • 9 Demo: Verificar si el usuario está autenticado y objeto de sesión

    Vamos a estudiar un poco cómo está conformado el objeto de la sección y verificar si un usuario está o no autenticado.

  • 10 Confirmar contraseña

    Vamos a colocar un campo para confirmar la contraseña de un usuario.

  • 11 Opciones de usuario en el navbar

    Vamos a definir las opciones de usuario en el navbar.

  • 12 Módulo de login mediante Flask-Login

    Vamos a instalar y configurar un nuevo módulo que sería para automatizar el login y manejo del usuario.

  • 13 Primeros pasos con Flask-Login

    Vamos a instalar un paquete para la autenticación en Flask; que nos facilitará ciertos procesos y funcionalidades al momento de crear un módulo de login.

  • 14 Decoradores para proteger un módulo con login

    Vamos a emplear un decorador que nos permitirá proteger el módulo de CRUD con login.

  • 15 Redireccionar mediante el parámetro next

    Vamos a realizar unos sencillos cambios para recibir el parámetro de next que es completamente opcional y que vamos a emplear para hacer las redirecciones a la vista que intentó ingresar a nuestro usuario antes de estar autenticado.

  • 16 Inyección de JavaScript para la ruta de redirección en login

    Vamos a inyectar el código JavaScript de la ruta next en el formulario que será enviado por post.

  • 17 Proteger módulo CRUD

    Vamos a proteger el módulo crud para que solamente pueda ser accedido mediante el login.

  • 18 Crear decoradores: proteger el CRUD con un usuario admin

    Vamos a crear un decorador, para extender las funcionalidades que nos ofrece el Flask Login y crear un sencillo sistema de rol.

  • 19 Cambiar el diseño del formulario de login

    Vamos a actualizar el diseño del formulario de login para nuestra app

  • 20 Código fuente de la sección

    Código fuente de la sección

Creando una Rest Api

  • 1 Introducción y que vamos a aprender

  • 2 Entendiendo como funciona una Rest Api y creando el módulo

    Vamos a explicar que es una Rest Api, para que sirve y cómo va a estar compuesta la misma en un proyecto en Flask; también vamos a crear un nuevo módulo para la Api Rest.

  • 3 Creando nuestra Rest Api: Esquema básico de la clase, get

    Vamos a crear el esquema para nuestra Rest Api, declarar la clase y un método para hacer las primeras pruebas y crear las rutas.

  • 4 Creando nuestra Rest Api: Convirtiendo la respuesta en json

    Vamos a aprender a retornar una respuesta de tipo json mediante el método get.

  • 5 Creando nuestra Rest Api: Definiendo todos los métodos de la clase y de HTTP

    Vamos a definir todos los métodos Rest que vamos a emplear en nuestra Rest Api.

  • 6 Creando nuestra Rest Api: Obtener el detalle de un registro

    Vamos a implementar en nuestra Rest Api obtener el detalle de un registro.

  • 7 Instalar Postman para realizar peticiones

    Vamos a instalar un software esencial para poder realizar peticiones a nuestra Rest Api.

  • 8 Petición Post: Recibir y validar

    Vamos a validar los datos que recibimos por parte de nuestro usuario por el Post.

  • 9 Petición Post: Crear el producto

    Vamos a crear el producto una vez validada la data.

  • 10 Normalizar respuestas de la RestApi

    Vamos a aprender a crear un esquema básico que podremos utilizar a lo largo de nuestra app para devolver las respuesta en base a un mismo formato.

  • 11 Petición Delete: Eliminar un producto

    Vamos a implementar la eliminación de un producto mediante nuestra Rest Api.

  • 12 Petición Put: Actualizar un producto

    Vamos a implementar la actualización un producto que es una copia de los dos métodos que vimos anteriormente.

  • 13 Crear RestApi de detalle de la categoría

    Vamos a implementar una Rest Api para tener un listado de categorías.

  • 14 Código fuente de la sección

    Código fuente de la sección

Conecta tus aplicaciones con Vue

  • 1 Curso en Vue 3: Crear un proyecto en Vue con Vue CLI #1

    Vamos a comoenzar a crear un proyecto en #Vue 3 con Vue CLI 0:00 Usando VSC con Vue 2:50 Estructura de un proyecto en Vue

  • 2 Configurar los CORS en Flask para trabajar con Vue

    Vamos a instalar trabajar con los CORS en Flask y poder consumir una Rest Api creada en este framework desde Vue. Este video forma parte de mi curso completo!

  • 3 Crear un listado de productos

    Crear un listado de productos

  • 4 Componente para crear productos

    Componente para crear productos

  • 5 Enviar peticiones fetch desde vue mediante FormData a la Rest Api

    Enviar peticiones fetch desde vue mediante FormData a la Rest Api

  • 6 Eventos personalizados entre componentes

    Eventos personalizados entre componentes

  • 7 Comunicación entre el componente padre al hijo

    Comunicación entre el componente padre al hijo

  • 8 Editar un producto

    Editar un producto

  • 9 Detalle de un producto, fetch

    Detalle de un producto, fetch

  • 10 Detalle de un producto, referencia

    Detalle de un producto, referencia

  • 11 Eliminar un producto

    Eliminar un producto

Conectarse a la Rest Api con Vue 2 (Legacy)

  • 1 Introducción y que vamos a aprender

  • 2 Sobre Vue e Instalar Vue CDN en nuestro proyecto

    Vamos a introducir un poco Vue para el desarrollo de webs modernas y realizar la instalación del mismo en nuestro proyecto.

  • 3 Crear un módulo para nuestra app en Vue y Hola Mundo

    Vamos a crear un módulo para trabajar con la app en Vue y hacer el hola mundo.

  • 4 Métodos y evento click Vue

    Vamos a crear un método que imprima un mensaje por consola en base a un evento click de nuestro usuario.

  • 5 Los fetch para obtener recursos

    Vamos a presentar los fetch, como mecanismo para conectarnos mediante HTTP y conseguir datos de manera asíncrona.

  • 6 Los ciclos en Vue y atributos y concatenación en Vue

    Vamos a presentar los ciclos, para iterar elementos.

  • 7 Los condicionales en Vue

    Vamos a ver el uso de los condicionales en Vue.

  • 8 Los componentes en Vue para modularizar nuestra app

    Vamos a crear un componente, como elemento fundamental para modularizar nuestra app.

  • 9 Crear un archivo aparte para la instancia principal de Vue

    Vamos a mover nuestra instancia de Vue en un archivo aparte para modularizar nuestra app.

  • 10 Ciclo de vía de Vue: generar automáticamente nuestro listado

    Vamos a conocer el ciclo de vida de una app en Vue para automatizar procesos una vez que la app de Vue esté cargada.

  • 11 Crear un componente para eliminar productos y registrar ID producto a eliminar

    Vamos a crear un componente que permitirá borrar un producto mediante un modal.

  • 12 Pase de datos entre los componentes mediante los props

    Vamos a aprender a pasar datos entre componentes; específicamente el ID del producto a eliminar.

  • 13 Los watch para observar cambios en propiedades

    Vamos a aprender a como podemos observar cambios en propiedades y realizar alguna acción.

  • 14 Bug al momento de activar repetidamente el modal en un mismo producto

    Vamos a reparar un problema que ocurre cuando intentamos seleccionar múltiples veces el mismo producto, que el modal no aparece por segunda vez.

  • 15 Personalizar el modal con datos del producto y v-if vs v-show

    Vamos a personalizar el modal para borrar con datos del producto seleccionado.

  • 16 Borrar producto mediante un fetch

    Vamos a aprender a borrar productos mediante el fetch.

  • 17 Los eventos personalizados para devolver el producto eliminado

    Vamos a crear un evento para notificar al listado que el producto fue eliminado.

  • 18 Los índices de los for para eliminar el producto

    Vamos a colocar un índice al for del listado para que sepamos cual producto vamos a eliminar.

  • 19 Componente guardar/actualizar producto: Crear

    Vamos a crear un componente que nos permitirá crear un nuevo producto.

  • 20 Los v-model para los campos de formulario

    Vamos a seguir trabajando sobre nuestro modal para crear un producto y vamos a presentar los v-model de Vue para asignar una propiedad a un campo de formulario.

  • 21 Componente guardar/actualizar producto: Crear producto

  • 22 Componente guardar/actualizar producto: Actualizar producto

    Vamos a realizar la petición fetch para crear el producto

  • 23 Componente guardar/actualizar producto: Recargar listado

    Ahora que ya tenemos nuestro producto editado, tenemos que refrescar los cambios en el listado.

  • 24 Verificar código en la respuesta del servidor

    Vamos a realizar una sencilla comparación desde el then del fetch para detectar si la respuesta es de código 200 u otro código.

  • 25 Mostrar validaciones del lado del servidor

    Vamos a mostrar los mensajes de errores por el modal.

  • 26 Listado de categorías desde la Rest Api

    Vamos a construir el listado de categorías ahora con la Rest Api.

  • 27 Código fuente de la sección

    Código fuente de la sección

Extra: Aspectos generales

  • 1 Introducción

  • 2 Página 404 500 personalizada

    Vamos a aprender cómo puedes crear páginas personalizadas para mostrar los errores en tu app.

  • 3 Comando pip freeze

    Vamos a conocer el comando de freeze para obtener todos los módulos que tengamos instalado en nuestro equipo mediante pip.

  • 4 Ambientes virtuales

    Vamos a conocer el uso de los ambientes virtuales para crear un espacio aislado de nuestra computadora para realizar las pruebas.

  • 5 Carga de archivos: Crear campos y validaciones

    Vamos a crear los campos en el modelo y la base de datos además de definir las validaciones de los formularios así como los campos del mismo para la carga de archivos.

  • 6 Carga de archivos: Definir archivos permitidos y configuración del path carga

    Vamos a definir una regla para los archivos permitidos así como configurar el path para la carga de archivos.

  • 7 Carga de archivos: Validar extensión de archivos cargados

    Vamos a aprender a validar la extensión de los archivos a cargar y procesar.

  • 8 Carga de archivos: Registrar cambios y guardar archivo

    Vamos a hacer el proceso para la carga del archivo, procesamiento y guardado del mismo en nuestra app.

  • 9 Carga de archivos: opcional

    Vamos a mostrar cómo puedes configurar la carga de archivos de manera opcional.

  • 10 Protección formularios CSRF

    Vamos a aprender el uso de la protección de los CSRF para los formularios empleando Form-wft.

  • 11 Valores por defecto en los parámetros de la URL

    Vamos a aprender a a definir valores por defecto en la URL.

  • 12 Definir categorías para los mensajes flash

    Vamos a aprender a emplear las categorías que las podemos configurar en el uso de los mensajes flash de manera opcional.

  • 13 Crear estructura para los mensajes flash de errores de formulario

    Vamos a componer la vista de _alert, la cual muestra todos los mensajes de la aplicación, incluido los de formulario, vamos a corregir el despliegue de los errores de formulario.

  • 14 Mostrar errores a cada campo formulario

    Vamos a aprender a mostrar los errores del formulario de manera individual.

  • 15 Proteger Rest Api con autenticación/autorización

    Vamos a aprender a proteger la RestApi que construimos anteriormente para que solamente pueda ser consumida si el usuario dispone de una pareja de usuario y contraseña.

  • 16 Validaciones personalizadas

    Vamos a aprender a crear validaciones personalizadas para los campos de formularios.

  • 17 Validaciones personalizadas y pase de parámetros

    Vamos a aprender a pasar parámetros para personalizar las validaciones personalizadas para los formularios.

  • 18 Problema con la validación personalizada al actualizar un registro

    Vamos a corregir el problema de que no podemos modificar una categoría con el mismo nombre.

  • 19 Configuraciones adicionales para el WTform

    Vamos a ver algunas configuraciones extra que podemos hacer a los formularios mediante el WTForm.

  • 20 Definir formulario hijo dentro de otro

    Vamos a aprender a crear formularios compuestos, definiendo un formulario dentro de otro.

  • 21 Construir un campo de formulario base

    Vamos a construir un campo de formulario base que luego podemos reutilizar, un esquema similar al vídeo anterior.

  • 22 Construir múltiples campos de formulario de manera dinámica

    Vamos a aprender a crear campos de formulario de manera dinámica.

  • 23 Borrar campos de formulario de manera dinámica

    Vamos a aprender a borrar campos de formulario de manera dinámica.

  • 24 Google Recaptcha

    Vamos a configurar Google Recaptcha con un proyecto en Flask.

  • 25 Error de validación Google Recaptha

    Vamos a hablar sobre la conexión https para que no ocurra una posible excepción con el Google Recaptha.

  • 26 Pasar datos del formulario a un objeto

    Vamos a aprender a pasar datos de un formulario a un objeto de una clase.

Extra: Paquetes o módulos imprescindibles para Flask

  • 1 Flask Bootstrap 4

    Vamos a conocer un paquete para manejar Bootstrap en su versión 3 y 4.

  • 2 Flask Mail

    Vamos a aprender a enviar emails mediante Flask.

  • 3 Flask Migrate

    Vamos a aprender a trabajar con versionamientos en nuestra base de datos mediante este paquete

  • 4 Flask Babel

    Vamos a aprender a traducir nuestras aplicaciones con este módulo para Flask.

  • 5 Flask Admin: Primeros pasos

    Vamos a conocer este interesante módulo para crear CRUD automáticos dado un modelo.

  • 6 Flask Admin: Modales para la creación y actualización

    Vamos a aprender a configurar modales para los procesos de crear y actualizar.

  • 7 Flask Admin: Exportar, búsqueda y filtros

    Vamos a aprender a configurar opciones de búsqueda, filtro y exportación.

  • 8 Flask Admin: Date y Datetime

    Vamos a crear un campo de tipo fecha para conocer cómo se comporta el Flask Admin.

  • 9 Flask Admin: Listas estáticas

    Vamos a aprender a fijar valores estáticos en los campos de texto.

  • 10 Flask Admin: Validaciones

    Vamos a aprender a crear reglas de validaciones en los campos de formulario.

  • 11 Flask Admin: Personalizar los datos en crear o guardar

    Vamos a aprender a personalizar o procesar los datos del usuario antes y después de guardar.

  • 12 Flask Admin: Instanciar modelo de creación o edición del formulario

    Vamos a conocer como podemos obtener una instancia del formulario que vamos a editar o crear para personalizar el mismo.

  • 13 Flask Admin para los productos y categorias

    Vamos a aplicar los cambios para que el CRUD de Flask Admin sea empleado también para los productos y categorías.

  • 14 Flask Admin: personalizar template

    Vamos a aprender a cómo podemos personalizar el template de Flask Admin.

  • 15 Flask Admin: personalizar template: listar, crear y editar

    Vamos a personalizar el template de listado del Flask Admin.

  • 16 Flask Admin: Bootstrap 4

    Vamos a instalar una versión de un tercero de Flask Admin con Bootstrap 4.

  • 17 Flask Admin: Proteger el ModelView con el login de Flask Login

    Vamos a proteger el módulo que construimos con Flask Admin con loguin empleando Flask Login.

  • 18 Flask User

    Este módulo permite administrar los usuarios mediante la creación de vistas para login, registro, manejo de roles, envío de emails de confirmación etc.

  • 19 Flask Restless

    Vamos a conocer este módulo para crear Rest Api fácilmente y rápidamente.

  • 20 Flask Restless: Post, Patch y Delete

    Vamos a conocer como podemos hacer las operaciones para crear, actualizar y borrar empleando este módulo.

  • 21 Flask Restless: Query de búsquedas

    Vamos a aprender a emplear el query search para realizar consultas.

  • 22 Flask Caching

    Vamos a aprender guardar caché de las páginas así como del llamado a funciones en Flask mediante un módulo.

  • 23 Flask-DebugToolbar

    Vamos a aprender a mostrar un toolbar con información de debug de nuestra app.

Potenciando el módulo administrador

  • 1 Introducción

  • 2 Realizar cambios iniciales para trabajar con Flask User

    Vamos a empezar las configuraciones iniciales en nuestro proyecto para adaptarlo con el Módulo Flask User.

  • 3 Trabajando con Flask Migrate para crear la nueva estructura

    Vamos a hacer cambios en la base de datos, pero ahora vamos a hacerlo empleando el paquete de Flask Migrate.

  • 4 Realizar cambios en los enlaces de login y logout

    Vamos a empezar a hacer algunos cambios al tener deshabilitado el módulo de usuario que creamos anteriormente por el de Flask User.

  • 5 Realizar cambios en los enlaces de login y logout parte 2

    Vamos a seguir con los cambios de enlaces en nuestra app.

  • 6 Habilitar la confirmación por emails

    Vamos a enseñar cómo podemos permitir la verificación del usuario registrado por email.

  • 7 Personalizar templates de Flask User

    Vamos a aprender a cómo podemos personalizar vistas de Flask User.

  • 8 Flask User: Personalizar template base

    Vamos a personalizar la vista base de Flask User.

  • 9 Flask User: Personalizar template login

    Vamos a personalizar la vista de login de Flask User.

  • 10 Flask User: Personalizar template register

    Vamos a personalizar la vista de register/registro de Flask User.

  • 11 Flask User: Personalizar errores de formulario

    Vamos a personalizar la clase de los errores de formulario de Flask User.

  • 12 Flask User: Personalizar template change password

    Vamos a personalizar la página para cambiar la contraseña del usuario.

  • 13 Flask User Roles: Incorporar los Roles en el modelo de datos (Many to Many)

    Vamos a incorporar el sistema de roles con el cual cuenta Flask User.

  • 14 Flask User Roles: Cargar datos iniciales de manera manual

    Vamos a cargar de manera manual algunos datos iniciales en la base de datos.

  • 15 Flask User Roles: Proteger el dashboard con el nuevo esquema de roles

    Vamos a proteger el dashboard con el decorador que nos ofrece Flask User.

  • 16 Flask User Roles: Crear un usuario de tipo superadmin

    Vamos a crear un usuario superadministrador en la base de datos.

  • 17 Demo: Flask User Roles: Asignar el rol de superadmin y de admin

    Vamos a hacer algunas pruebas con un usuario superadmin con rol de admin para ingresar a nuestro dashboard.

  • 18 Demo: Flask User Roles: Proteger dashboard con el rol de admin y superadmin

    Vamos a proteger el módulo de dashboard con el rol de admin y el superadmin.

  • 19 Flask User Roles: Signals para disparar eventos de usuario

    Vamos a conocer los signals de Flask User para manejar eventos del usuario.

  • 20 Flask User Roles: Asignar rol por defecto al momento de crear un usuario

    Vamos a emplear el signals para los eventos registrados para otorgar un rol por defecto cuando se registre un usuario en nuestra app.

  • 21 Flask User Form: Tipos

    Vamos a conocer los tipos de formularios que podemos emplear en Flask User.

  • 22 Flask User Form: Definir controlador y vista para registrar un usuario

    Vamos a definir un controlador para manejar el formulario para el usuario a registrar.

  • 23 Demo: Flask User Form: Personalizar

    Vamos a personalizar el formulario de registro con un nuevo campo.

  • 24 Definir constructor del modelo para crear un usuario

    Vamos a crear el constructor del modelo de Usuarios.

  • 25 Crear un usuario

    Vamos a crear el usuario, para eso vamos a terminar de adaptar el método del controlador.

  • 26 Hashing de la contraseña

    Vamos a convertir en un hash nuestra contraseña.

  • 27 Asignar roles de admin

    Vamos a asignar los roles al usuario al momento de creación.

  • 28 Listado de usuarios

    Vamos a construir la base del listado de usuarios.

  • 29 Demo: Listado de usuarios: Definir filtro por admin (implementación filter)

    Vamos a ver una variante más limpia pero más abstracta del join que vimos anteriormente.

  • 30 Habilitar la paginación

    Vamos a habilitar la paginación de registros.

  • 31 Actualizar un usuario

    Vamos a actualizar un usuario, específicamente el username.

  • 32 Validar username único

    Vamos a crear una validación personalizada y una clase personalizada para cambiar el Username.

  • 33 Borrar un usuario

    Vamos a desarrollar la función para borrar un usuario.

  • 34 Establecer el rol para CRUD de usuarios superadmin

    Vamos a establecer la opción del CRUD de admins solamente para el Rol del Superadmin.

  • 35 Seleccionar un template para mejorar el dashboard

    Vamos a escoger un tema o template para el dashboard para nuestra app.

  • 36 Instalar el template para nuestra aplicación

    Vamos a instalar el template en nuestra app para dejar lo básico funcional.

  • 37 Configurar el header

    Vamos a configurar el header para el nuevo template.

  • 38 Configurar el navbar

    Vamos a configurar el navbar para del nuevo template.

  • 39 Configurar el footer

    Vamos a configurar el footer para del nuevo template.

  • 40 Configurar las cartas del listado

    Vamos a configurar el listado de las cartas de los usuario para el nuevo template.

  • 41 Configurar los formularios: Definir estructura

    Vamos a variar un poco el diseño para adaptarlo al template.

  • 42 Configurar los formularios: Crear cabecera

    Vamos a colocar una cabecera a los formularios que resume la acción a realizar.

  • 43 CSS personalizado para el dashboard

    Vamos a ver una demostración de cómo podemos sobrescribir CSS de nuestro template.

  • 44 Mostrar enlaces de paginación en el centro

    Vamos a colocar los enlaces de paginación en el centro.

  • 45 Crear template base para el módulo de usuarios

    Vamos a crear un template base para el módulo de usuario/flask_user

Crear un sencillo sistema de Facturación

  • 1 Introducción

  • 2 Crear estructura inicial: Crear módulo facturación

    Vamos a crear un nuevo módulo para trabajar con la sección de facturación.

  • 3 Crear CRUD para usuarios de tipo regular | Variables globales

    Vamos a hacer algunos cambios para que desde nuestro admin o superadmin podamos crear usuarios regulares o admin respectivamente.

  • 4 Verificar rol del usuario autenticado en opciones del sidebar

    Vamos a crear un enlace en el seader para los usuarios de tipo Regular y para ir al módulo de facturación.

  • 5 Diseño del filtro de búsqueda

    Vamos a diseñar un campo de filtro o búsqueda por el nombre; vamos a construir el HTML.

  • 6 Búsqueda de productos por palabras claves

    Vamos a crear el filtro desde el controlador.

  • 7 Mostrando el listado de productos

    Vamos a construir un listado desde la vista con los productos obtenidos mediante la búsqueda.

  • 8 Crear un formulario para procesar un producto

    Vamos a crear un sencillo formulario para más adelante hacer las ventas o facturación.

  • 9 Devolver listado de productos vía json

    Vamos a construir el listado de productos vía json.

  • 10 Consumir productos vía json: Crear el fetch

    Vamos a crear un fetch para poder consumir el listado de productos.

  • 11 Consumir productos vía json: Crear la estructura

    Vamos a crear la estructura que vamos a emplear para poder consumir los productos vía json y mostrarlos en un listado de manera asíncrona.

  • 12 Consumir productos vía json: Crear el listado

    Vamos a crear un listado a partir del json consumido vía fetch.

  • 13 Obtener y validar mediante los productos seleccionados con JavaScript

    Vamos los productos seleccionadas por nuestro usuario y hacer unas validaciones a partir de los mismos.

  • 14 Definir los datos a enviar vía fetch/post

    Vamos a definir la petición vía fetch.

  • 15 Crear tabla para las ventas

    Vamos a crear la tabla/modelo para registrar las ventas.

  • 16 Crear tabla para los productos de las ventas (OneToMany)

    Ahora vamos a crear la tabla/modelo para registrar los productos de las ventas.

  • 17 Guardar los datos del formulario

    Vamos a desarrollar el método de sell para hacer una venta y registrarla en la bd.

  • 18 Validar datos de formulario: Crear formulario en Flask

    Vamos a crear un formulario base en Flask para los ventas.

  • 19 Validar datos de formulario: Crear validaciones y validar controlador y vista

    Vamos a agregar las validaciones en el formulario y procesar el el Post ajax mediante el formulario que creamos anteriormente.

  • 20 Validar datos de formulario: Ids de productos

    Vamos a validar los identificadores de los productos.

  • 21 Validar datos de formulario: Mandar el token csrf

    Vamos a configurar el token csrf para proteger nuestra petición.

  • 22 Modal de Bootstrap: Configurar y habilitar función para el modal

    Vamos a configurar un modal para mostrar los mensajes del servidor.

  • 23 Modal de Bootstrap: Mostrar mensajes del servidor

    Vamos a mostrar los mensajes del servidor.

  • 24 Modal de Bootstrap: Variar modal si la respuesta es 200 o 50x

    Vamos a hacer una sencilla validación para variar un poco el estilo dependiendo del código.

  • 25 Listado de ventas

    Vamos a crear el listado de ventas realizadas.

  • 26 Imprimir un sencillo PDF: Librería y uso básico

    Vamos a aprender a imprimir un sencillo pdf desde una página HTML.

  • 27 Imprimir un sencillo PDF: Librería y uso básico

    Vamos a aprender a imprimir un sencillo pdf desde una página HTML.

  • 28 Imprimir un sencillo PDF: Crear página HTML

    Vamos a crear una página HTML que luego vamos a usar como fuente para generar un PDF.

  • 29 Imprimir un sencillo PDF: Crear página HTML

    Vamos a crear una página HTML que luego vamos a usar como fuente para generar un PDF.

  • 30 Imprimir un sencillo PDF: Imprimir un PDF

    Vamos a crear una página HTML que luego vamos a usar como fuente para generar un PDF.

  • 31 Imprimir un sencillo PDF: Descargar el PDF

    Vamos a aprender a descargar el PDF que generamos anteriormente.

Refactorizar app para hacerla más modular

  • 1 Introducción

    Introducción

  • 2 Renombrar controladores: Caso de estudio controlador producto

    Vamos a renombrar el controlador de product para darle un mejor nombrado para nuestra app.

  • 3 Definir una URL base para el controlador mediante Blueprint

    Vamos a definir una URL base para el controlador de productos.

  • 4 Modelo único en nuestros módulos: Renombrar modelo producto

    Vamos a crear un solo modelo global en toda nuestra app.

Creando una Rest Api con el paquete de Flask restful

  • 1 Introducción

  • 2 Instalando Flask restful

    Vamos a instalar un paquete para crear la Rest Api.

  • 3 Crear una Api Rest mínima

    Vamos a crear una Api Rest mínima.

  • 4 Crear una Rest Api para las categorías

    Vamos a crear una Api Rest para las categorías.

  • 5 Método para verificar si la categoría existe

    Vamos a crear un método de uso global para comprobar si la categoría existe.

  • 6 Método para convertir a json

    Vamos a crear un método para pasar una categoría a un diccionario.

  • 7 Obtener el detalle de una categoría

    Vamos a crear el primer recurso tipo rest para obtener el detalle de una categoría dado el ID.

  • 8 Obtener Todas las categorías

    Vamos a crear un recurso Rest para obtener todas las categorías.

  • 9 Crear una categoría

    Vamos a crear una categoría desde un recurso.

  • 10 Deshabilitar la protección para la CSRF para la Rest

    Vamos a deshabilitar la protección CSRF para la Rest Api.

  • 11 Actualizar una categoría

    Vamos a actualizar una categoría desde un recurso.

  • 12 Borrar una categoría

    Vamos a borrar una categoría desde un recurso.

  • 13 Obtener datos desde con el Request parsing

    Vamos a especificar mediante el Request parsing de este paquete, cuales son los parámetros con los cuales vamos a trabajar, así como una sencillas validaciones para que puedan ser consumidas mediante nuestra app en vez de emplear el request.form.

  • 14 Campos para la salida (parseo) de datos

    Vamos a trabajar con el casteo de salida para emplear una estructura provista por el paquete.

  • 15 Obtener categorías filtrando por el nombre

    Vamos a obtener un listado paginado desde la Rest y para esto vamos a crear un método personalizado en la Rest.

  • 16 Autenticación requerida: Primeros pasos

    Vamos a aprender a proteger nuestra Rest Api con usuario y contraseña.

  • 17 Autenticación requerida: Integrar FlaskUser/FlaskLogin

    Vamos a aprender a proteger nuestra Rest Api con el sistema de FlaskUser.

Flask Dance: Login Social

  • 1 Introducción

  • 2 Configurar pyopenssl

    Vamos a instalar un paquete para habilitar un SSL.<br /> <br /> openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

  • 3 Instalar el paquete para la OAuth Flask Dance

    Vamos a instalar el proveedor que nos permitirá emplear el login social.

  • 4 Obtener las credenciales de Facebook

    Vamos a obtener la clave y clave secreta del portal de desarrolladores de Facebook para poder adaptar el login social.

  • 5 Configurar el Login via Facebook en Flask

    Vamos a conseguir el login social (obtener datos del usuario de fb) mediante las configuraciones y pasos anteriores.

  • 6 Obtener las credenciales de Google

    Vamos a obtener la clave y clave secreta del portal de desarrolladores de Google para poder adaptar el login social.

  • 7 Configurar el Login via Google en Flask

    Vamos a conseguir el login social (obtener datos del usuario de google) mediante las configuraciones y pasos anteriores.

  • 8 Obtener las credenciales de Twitter

    Vamos a obtener la clave y clave secreta del portal de desarrolladores de Twitter para poder adaptar el login social.

  • 9 Configurar el Login via Twitter en Flask

    Vamos a conseguir el login social (obtener datos del usuario de Twitter) mediante las configuraciones y pasos anteriores.

Flask socketIO: Comunicación Full Duplex

  • 1 Introducción

  • 2 Crear nuevo proyecto

    Vamos a crear un proyecto base para la nueva sección.

  • 3 Explicar el flujo básico de Socket y la comunicación flux duplex

    Explicaremos el funcionamiento básico de la comunicación full duplex SocketIO.

  • 4 Crear página HTML de ejemplo

    Vamos a crear una página HTML de ejemplo para poder trabajar con el cliente de SocketIO en los siguiente videos.

  • 5 Comunicación full duplex conexión servidor

    Vamos a realizar y explicar el uso de SocketIO en el servidor.

  • 6 Comunicación full duplex conexión cliente

    Vamos a realizar la comunicación de SocketIO desde el cliente al servidor.

  • 7 Comunicación varios clientes, broadcast

    Vamos a conocer un mecanismo para comunicar a varios clientes y crear habitaciones.

  • 8 Enviar varios argumentos y un json

    Vamos a practicar un poco más con el pase de argumentos al emitir eventos.

  • 9 Crear una app de chat: Enviar mensajes

    Vamos a crear el formulario para enviar mensajes desde el cliente.

  • 10 Crear una app de chat: Listar mensajes

    Vamos a listar los mensajes desde la página web.

  • 11 Crear una app de chat: Limpiar textarea al enviar un mensaje

    Vamos a limpiar el textarea cuando enviemos un mensaje.

  • 12 Crear una app de chat: Inyectar fecha actual

    Vamos a inyectar en el mensaje de nuestro usuario la fecha de creación.

  • 13 Crear una app de chat: Pasar información sobre la persona

    Vamos a hacer una demo y pasar información sobre la persona.

  • 14 Crear esquema modular

    Vamos a crear una estructura más modular para la app, en el esquema de MVC.

  • 15 Crear archivo de configuración

    Vamos a crear un archivo de configuración.

  • 16 Integrar base de datos: Flask Migrate y SQAlchemy

    Vamos a instalar y configurar Flask Migrate y SQAlchemy.

  • 17 Integrar con Flask Login y Flask WTF: Registrarse

    Vamos a instalar Flask login, crear un formulario y registrar un usuario.

  • 18 Integrar con Flask Login y Flask WTF: Iniciar Sesión

    Vamos a instalar Flask login, crear un formulario y el login de un usuario.

  • 19 Integrar con Flask Login y Flask WTF: Cerrar Sesión

    Vamos a implementar la opción de cerrar sesión.

  • 20 Proteger ruta para el chat y pasar datos usuario autenticado

    Vamos a definir las opciones para proteger algunas rutas en la app de chat.

  • 21 Componer datos del usuario autenticado en el mensaje

    Vamos a colocar parte de la información del usuario autenticado en el mensaje.

  • 22 Mensajes Room: Crear modelo

    Vamos a crear un modelo para manejar los mensajes de tipo room.

  • 23 Mensajes Room: Guardar mensajes

    Vamos a guardar los mensajes en la base de datos.

  • 24 Mensajes Room: Devolver mensajes en un diccionario

    Vamos a componer la respuesta del servidor para devolver el mensaje de la base de datos.

  • 25 Listar mensajes

    Vamos a mostrar los mensajes de la habitación en la web.

  • 26 Mensajes Room: Crear mensajes y habitaciones

    Vamos a hacer algunos cambios para que podamos crear mensajes y habitaciones.

  • 27 Rooms: Duplicar aplicación

    Vamos a duplicar la app de chat.

  • 28 Rooms: Primeras pruebas

    Vamos a presentar el esquema de habitaciones de Flask Socket IO.

  • 29 Rooms: Crear pool de habitaciones a las cuales podamos des/suscribirnos

    Vamos a crear un esquema en el cual nos podamos mover por varias habitaciones.

  • 30 Detectar usuarios des/conectados

    Veremos cómo podemos conocer cuando se conectan o desconectan usuarios mediante eventos.

  • 31 Rooms: Registrar en qué habitación estamos suscritos

    Vamos a guardar en la sesión en que habitación estamos registrados.

  • 32 Rooms: Seleccionar habitación y enviar mensajes

    Vamos a enviar mensajes a un canal/room por vez.

  • 33 Namespace

    Vamos a explicar el uso de los namespace para crear conexiones independientes.

  • 34 Método on_event para definir eventos del socket

    Veremos una variante del decorador para definir nuestros sockets.

  • 35 Manejo de Errores

    Vamos a aprender a manejar los errores o excepciones que pueden ocurrir en los sockets.

  • 36 Publicar en git

Operaciones comunes en SQLAlchemy

  • 1 all(), filters(), limits()

  • 2 first()

  • 3 like()

  • 4 negación

  • 5 joins

- Andrés Cruz

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.

!Cursos desde!

10$

En Udemy

Quedan 4d 12:54!


Udemy

!Cursos desde!

4$

En Academia

Ver los cursos

!Libros desde!

1$

Ver los libros
¡Hazte afiliado en Gumroad!