En este curso vas a aprender a crear tus primeras aplicaciones en Flask empleando Python 3, junto con este micro framework.
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 Jinja2 y SQLAlchemy, emplearlo en conjunto con Bootstrap 4, Vue, crear un módulo de login, CRUD, una Rest Api.
Nos apoyaremos en la documentación oficial que es variante dependiendo de si estamos trabajando propiamente con el micro framework o con otros componentes.
El curso se encuentra dividido en varias secciones:
Tabla de Contenidos
- 1. Python básico
- 2. Conociendo el mundo de Python, pip y flask
- 3. Creando una app de almacén con Blueprint y Jinja2
- 4. Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos
- 5. Creando una app de almacén: Bootstrap 4, +SQLAlchemy y Flask WFT
- 6. Autenticación en Flask: Creando un módulo de login
- 7. Creando una Rest Api
- 8. Conectarse a la Rest Api con Vue
1. Python básico
- En la primera sección vamos a dar los primeros pasos con Python, además de instalar el mismo y nuestro Visual Studio Code, que será nuestro editor de código para llevar 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 trabajar con Flask.
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 del a 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.
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.
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, daremos los primeros pasos con esta popular framework y cómo integrarlo en un proyecto en Flask; veremos sus principales componentes y profundizaremos un poco más en SQLAlchemy.
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.
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.
Python básico
Vamos a enseñar como podemos instalar Python y algunas consideraciones a tener en cuenta.
Vamos a instalar el IDE que vamos a emplear en este curso para desarrollar nuestras aplicaciones en Python y Flask.
Vamos a crear la carpeta de nuestro proyecto que vamos a emplear en esta sección para realizar las distintas pruebas y conocer Python.
Vamos a conocer como podemos crear variables en Python.
Vamos a conocer los tipos de datos en Python; string, flotantes, enteros y booleanos.
Vamos a conocer el uso de los operadores matemáticos en Python.
Vamos a dar algunos datos extras sobre el string para contar longitudes, reemplazar ocurrencias etc.
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.
Vamos a presentar una estructura que nos permitirá guardar colecciones de enteros, string, etc en una variable.
Vamos a ver cómo podemos emplear los condicionales en Python.
Vamos a ver el uso de los ciclos for en python para iterar listas.
Vamos a conocer el uso de las funciones en Python, pase de parámetros y retornos de valores.
Vamos a crear nuestra primer clase, así como atributos métodos y constructores y crear una instancia de la misma.
Vamos a ver el uso de los tipos enumerados en Python para crear constantes.
Vamos a conocer la estructura llamada diccionario para crear estructuras de tipo llave valor.
Vamos a conocer cómo podemos manejar los errores en tiempo de ejecución en nuestra app.
Código fuente de la sección
Conociendo el mundo de Python, pip y Flask
Vamos a hablar un poco sobre Flask y conocer su ecosistema.
Vamos a presentar el sistema de gestor de paquetes de Python, pip y vamos a instalar Flask mediante pip.
Vamos a hablar sobre el uso de los venv en nuestro curso.
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.
Vamos a aprender a actualizar una versión de Flask mediante la terminal.
Vamos a presentar las dos formas en la que tenemos para ejecutar una app en Flask, mediante el comando de Python y de Flask.
Vamos a presentar el modo de desarrollador para habilitar la recarga de nuestro servidor cada vez que hagamos cambios en el código fuente.
Vamos a presentar el pase de parámetros mediante la URL a una app en Flask.
Vamos a imprimir un código HTML en vez de simple texto.
Vamos a imprimir datos dinámicos desde el cuerpo HTML.
Vamos a aprender a organizar nuestra aplicación para que pueda tomar archivos estáticos con CSS, js, imágenes, etc.
Vamos a presentar el motor de templates de Flask conocido como Jinja2.
Vamos a aprender a crear una app que conste de varios módulos.
Vamos a presentar Blueprint para tener una app modular más organizada.
Vamos a aprender a realizar las configuraciones básicas y de la manera más sencilla en una app Flask.
Vamos a manejar las configuraciones básicas de la app mediante un archivo global.
Vamos a manejar las configuraciones básicas de la app mediante un archivo global y manejar distintos ambientes.
Código fuente de la sección
Creando una app de almacen con Blueprint y Jinja2
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.
Vamos a crear un modelo en Python con datos estáticos con los cuales podamos realizar un par de consultas.
Vamos a crear una vista o template para el listado de los productos y la función y ruta asociada a la misma.
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.
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.
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 filtro truncate, para cuando queramos cortar textos en tamaños determinados.
Vamos a conocer el filtro count, para contar la cantidad de caracteres de un String.
Vamos a conocer el filtro float, para convertir valores o textos a flotantes.
Vamos a conocer el filtro int, para convertir valores o textos a enteros.
Vamos a conocer el filtro round, para redondear valores flotantes.
Vamos a conocer el filtro join, para convertir un array a texto.
Vamos a conocer el filtro length, para determinar el tamaño de un array.
Vamos a conocer el filtro tojson, para convertir objetos a json.
Vamos a crear un filtro personalizado por nosotros en el módulo y global a nuestra app.
Vamos a crear el template base para nuestra aplicación en Jinja2
Vamos a conocer el uso de los condicionales en Jinja2.
Vamos a conocer el uso de la variable especial llamada loop en los for y sus variables.
Código fuente de la sección
Creando una app: SQLAlchemy para crear relaciones con nuestra base de datos
Vamos a crear la configuración de la base de datos.
Vamos a crear nuestro primer modelo y estructura de la base de datos y crear la tabla asociada a la misma mediante Flask.
Vamos a aprender a obtener todos los registros de la tabla product, la que creamos en el vídeo anterior.
Vamos a definir la configuración de la base de datos en el archivo de configuración de nuestra app.
Vamos a aprender a obtener un registro de la base de datos.
Vamos a dar una introducción de las principales funciones para obtener registros de la base de datos.
Vamos a aprender a crear registros mediante Flask.
Vamos a aprender a actualizar registros mediante Flask.
Vamos a aprender a eliminar registros mediante Flask.
Vamos a crear la vista o el formulario para crear productos.
Vamos a crear la función que va a recibir los datos del formulario que envía nuestro usuario.
Vamos a crear una redirección para cuando creemos productos manda directamente a otra vista; por ejemplo, la vista de creación de productos.
Vamos a aprender a emplear los mensajes flash o la sesión flash para enviar mensajes a nuestro usuario.
Vamos a configurar la visualización de los mensajes flash mediante la vista.
Vamos ahora a desarrollar la funcionalidad para actualizar productos.
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.
Vamos a aprender a agregar reglas de validación a los formularios.
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.
Vamos a crear todo el proceso para actualizar un producto existente mediante el WFT.
Vamos a implementar la funcionalidad para eliminar productos y con esto completamos nuestro CRUD.
Vamos a aprender a paginar registros y crear los enlaces de navegación.
Código fuente de la sección
Creando una app de almacén: Bootstrap 4, +SQLAlchemy y Flask WFT
Vamos a hacernos con nuestra copia de Bootstrap en su versión 4 e instalarlo en nuestra app Flask.
Vamos a configurar el layout de nuestra app, para que todo no aparezca tan estirado.
Vamos a mostrar los mensajes tipo flash por un componente de alert de Boostrap 4.
Vamos a personalizar el diseño de los formularios.
Vamos a crear un header con los componentes de navegación.
Vamos a definir un sencillo footer para nuestra app.
Vamos a aprender a crear macros en Flask, y el tema será un macro para la paginación de los registros.
Vamos a crear el diseño para los componentes del listado de productos de nuestra app.
Vamos a crear una hoja de estilo personalizada en donde definir el CSS de nuestra app.
Vamos a implementar un modal de confirmación para cuando queramos eliminar registros.
Vamos a instalar una iconografía para nuestra app.
Vamos a configurar los tooltips en la app, que son esos pequeños globos informativos.
Vamos a crear un modelo y la clase de formulario para las categorías.