Curso y Libro en Flask 3 con Python 3 + integración con Vue 3 y Bootstrap 5
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 Flask como un curso gratis para Flask que veremos más adelante.
Comprar el Curso en Flask 3
A continuación, te presendo algunas opciones para comprar el curso; comenzando por la opción con mejor calidad precio que sería en la app de Academia:
Precio mínimo:
$8.0
Condiciones:
Todo el curso de por vida y descarga individual
Un único pago para todo el curso
Actualizaciones más frecuentes que en Udemy para agregar más y más clases al curso.
Aquí de dejo una lista de reproducción de las clases introductorias de cada módulo:
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.
Introducción
Esta guía tiene la finalidad de dar los primeros pasos con Flask empleando Python; con esto, vamos a plantear dos cosas: No es un libro que tenga por objetivo conocer al 100% Flask, o de cero a experto, ya que, sería un objetivo demasiado grande para el alcance de esta guía, si no, conocer que nos ofrece y crear las primeras aplicaciones web con Flask, conocer sus extensiones, crear una API, usar Jinja2 entre otros.. Se da por hecho de que el lector tiene conocimientos al menos básicos en el desarrollo de Python.
El curso y libro tienen un enfoque práctico, conociendo los aspectos claves de la tecnología y pasando a la práctica, implementando de a poco pequeñas características de una aplicación que tiene alcance real.
Para seguir este libro necesitas tener una computadora con Windows, Linux o MacOS.
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.
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:
Introducción
Variables
Tipos de datos
Operadores
Más datos sobre el String
String Format (Formato de los String)
String replace
Listas
Condicionales
For
Funciones
Clases
Enum
Diccionarios
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.
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é puedes esperar del curso y que no
Vamos a tratar múltiples tecnologías en este curso, pero centrándonos en el framework de Flask que es nuestro principal caso de interés, por lo tanto, emplearemos y explicaremos estas tecnologías relacionadas como Vue o Bootstrap en cualquiera de sus versiones hasta que sea necesario sin profundizar completamente en estas tecnologías relacionadas.
En este curso vamos a aprender desde cero a programar en nuestro framework Flask, conocer el ecosistema que necesitamos que es básicamente contar con Python en la versión 3 o superior; instalar paquetes, emplear Flask en conjunto con Bootstrap 4 o 5, Vue con Vue Cli, crear la Rest Api, crear nuestros CRUDs, websockets, módulo de login y un largo etc.
En este curso vas a aprender desde cero a programar en nuestro framework Flask, conocer el ecosistema que necesitamos que es básicamente contar con Python en la versión 3 o superior; instalar paquetes, emplear Flask en conjunto con Jinja2 y SQLAlchemy, emplearlo en conjunto con Bootstrap 4 o 5
Nos apoyaremos en la documentación oficial del framework que es excelente para conocer detalles.
El curso se encuentra dividido en varias secciones, para ir desarrollando de a poco, haciendo pequeñas aplicaciones web tanto en Flask, Vue Cli, conectándose con la Rest API.
Para quién es este tutorial
Estos recursos están dirigidos 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.
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.
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.
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.