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.
Este libro consta de 27 capítulos, con los cuales conoceremos en detalle las características más importantes y básicas de Flask:
Capítulo 1 - Software necesario e instalación de las herramientas: En este capítulo vamos a presentar el software necesario para crear proyectos en Flask, qué pasa desde Python, hasta preparar el entorno, el editor que emplearemos VSC y un navegador web.
Capítulo 2 - Introducción a Python: En este capítulo daremos una introducción a Python conociendo sus características básicas y funcionalidades como variables, tipos de datos, funciones, clases entre otros.
Capítulo 3 - Introducción a Flask: Presentamos algunos comandos imprescindibles para desarrollar en Flask, prepararemos el entorno y daremos una introducción al framework, crearemos una estructura para el proyecto en Flask y conoceremos de manera básica el ruteo para los controladores.
Capítulo 4 - Template en Flask con Jinja: En este capítulo veremos cómo emplear el motor de plantillas en por excelencia en Flask que es Jinja, con el cual podremos devolver respuestas en formato HTML y personalizar la página con código Python incrustado con el cual podremos personalizar mediante bloques, filtros, macros, entre otros.
Capítulo 5 - Base de datos - SQLAlchemy: En este capítulo veremos cómo conectar una aplicación en Flask a una base de datos relacional como lo es MySQL empleando SQLAlchemy; veremos cómo configurar una base de datos, conexión mediante los modelos, generación de migraciones automáticas en base a los modelos y las operaciones CRUDs básicas para manipular la base de datos.
Capítulo 6 - Flask-Migrate: En este capítulo instalaremos la extensión de Flask Migrate para configurar un sistema de migraciones para el proyecto y de esta forma poder personalizar las tablas y tener un esquema robusto para poder realizar cambios en la base de datos de manera práctica y escalable, además de poder crear una traza con estos cambios.
Capítulo 7 - Formularios: En este capítulo usaremos la extensión de Form WTF para crear formularios, aplicar validaciones, valores iniciales y posteriormente volcar estos datos a la base de datos, estos formularios son clases con los atributos anteriormente mencionados y de esta forma podemos aplicar un mismo esquema para manipulación de los datos del lado del servidor y cliente.
Capítulo 8 - Relaciones: En este capítulo veremos cómo emplear las relaciones de tipo uno a uno, uno a muchos y muchos a muchos en Flask con SQLAlchemy.
Capítulo 9 - Mensajes flash y sesión: En este capítulo veremos cómo emplear los mensajes tipo flash útiles para indicar al usuario sobre las operaciones realizadas.
Capítulo 10 - Autenticación: En este capítulo usaremos Flask Login para crear un sistema de autenticación para registrar usuarios, realizar el login, hacer el logout y poder proteger controladores.
Capítulo 11 - Rest API: En este capítulo veremos cómo implementar una Rest Api empleando el paquete de Flash Restful, generar tokens de acceso y realizar las conexiones de pruebas en Postman y empleando el paquete de requests.
Capítulo 12 - Pruebas: En este capítulo veremos cómo implementar pruebas unitarias que forman parte del desarrollo de cualquier aplicación, para ello, usaremos el paquete de Pytest disponible para Python.
Capítulo 13 - Archivos estáticos: En este capítulo integraremos el framework web Bootstrap 5 a nuestro proyecto en Flask, de esta manera, veremos cómo emplear ambas tecnologías en conjunto y aplicaremos estilos a los formularios, listados, menú de navegación, entre otros.
Capítulo 14 - Localización y traducciones: En este capítulo usaremos Flask Babel para agregar un sistema de multilenguaje a la aplicación, para dotar a la aplicación de que pueda emplear más de un idioma.
Capítulo 15 - Extensiones: En este capítulo, daremos el salto de una aplicación básica a una estructura profesional y robusta. Aprenderás a integrar componentes críticos que toda aplicación moderna requiere.
Capítulo 16 - Decoradores personalizados: En este capítulo aprenderemos a crear decoradores personalizados para emplear en los controladores.
Capítulo 17 - Roles y Perfil de usuario: Este capítulo vamos a conocer algunas operaciones a la base de datos empleando SQLAlchemy, además de conocer cómo emplear la shell de Flask.
Capítulo 18 - Manipulación de datos y pruebas: En este capítulo vamos a conocer cómo emplear los archivos para manejar las variables de entorno en Flask.
Capítulo 19 - Variables de entorno: En este capítulo vamos a conocer cómo emplear los archivos para manejar las variables de entorno en Flask.
Capítulo 20 - Crear un filtro con formularios: En este capítulo vamos a crear nuestro primer experimento que será un filtro para filtrar por término de búsqueda, categoría y etiqueta.
Capítulo 21 - Deployement: Veremos como podemos hacer el deploy del proyecto en el servicio de Railway.
Capítulo 22 - Creación de Aplicaciones en Tiempo Real: El Poder de Flask y Socket.IO: Aprende a construir aplicaciones en tiempo real con Flask y Socket.IO. Guía completa paso a paso: desde la configuración del entorno y WebSockets hasta la gestión de salas, autenticación de usuarios con Flask-Login y persistencia en base de datos con un diseño moderno en Bootstrap 5.
Capítulo 23 - Aspectos Generales: Veremos algunos aspectos generales de Flask que no hemos podido introducir antes como el uso de Celery para procesar tareas asíncronas y programar en la era de la IA.
Capítulo 24 - Proyecto: Potenciando el módulo administrador: En este capítulo, implementando un sistema robusto de autenticación y autorización utilizando Flask-Security-Too. Aprenderás a reemplazar lógicas personalizadas para integrar flujos completos de login, registro y confirmación por correo electrónico. Además, diseñaremos un sistema de roles avanzado con relaciones de muchos a muchos (Many-to-Many), personalizaremos las plantillas de seguridad para que coincidan con nuestra marca.
Capítulo 25 - Crear un sencillo sistema de Facturación: Desarrolla un sistema de facturación completo en Flask empleando JavaScript asíncrono, serialización de datos JSON y generación de comprobantes PDF con pdfkit.
Capítulo 26 - Consumir una REST API en Vue 3: Veremos como consumir una Api Rest en Flask desde Vue.
Capítulo 27 - MongoDB: Guía completa para dominar MongoDB y Flask. Desarrolla aplicaciones web seguras, integra MongoEngine para manejar relaciones, construye APIs REST y domina el uso de Flask-JWT-Extended.