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 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 capitulo tras capitulo.
Para quién es este libro
Este libro 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.
Temario del libro
Este libro consta de 20 capítulos, con los cuales conoceremos en detalle las características más importantes y básicas de Flask:
- Capítulo 1: 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: 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: 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: 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: 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: 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: 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: 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: En este capítulo veremos cómo emplear los mensajes tipo flash útiles para indicar al usuario sobre las operaciones realizadas.
- Capítulo 10: 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: 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: 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: 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: 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: En este capítulo conoceremos varias extensiones de Flask que no hemos empleado hasta este capítulo, como caché, CLI, un debug banner, email, entre otros.
- Capítulo 16: En este capítulo aprenderemos a crear decoradores personalizados para emplear en los controladores.
- Capítulo 17: En este capítulo integraremos un sistema de roles a la aplicación, además de esto, potenciaremos el perfil de usuario con varias opciones como opción de cambiar la contraseña, redes sociales, dirección, idioma preferido entre otros.
- Capítulo 18: 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 19: En este capítulo vamos a conocer cómo emplear los archivos para manejar las variables de entorno en Flask.
- Capítulo 20: 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.
![Andrés Cruz Andrés Cruz](/public/images/perfil.jpg)
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter