Tambien tengo recursos gratuitos para el Curso en el Blog
Es importante mencionar, que el curso tambien tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.
Este es el curso MÁS completo que encontrarás de FastAPI para iniciales, veremos de todo, desde aspectos básicos como las rutas, vistas, templates, modelos, manejo de formularios, validaciones, entre otros hasta aspectos más completos como Rest Api con token de autenticación que es el corazón de FastAPI, crear APIs, 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.
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.
FastAPI es un framework web estupendo para la creación de APIs con Python; nos ofrece múltiple características con las cuales es posible la creación de APIs modulares, bien estructuradas, escalables y con muchas opciones como validaciones, formatos, tipados entre otros.
Al instalar FastAPI, se instalan dos módulos muy importantes:
Con estos paquetes, tenemos lo básico para crear APIs, pero, podemos extender fácilmente un proyecto en FastAPI con otros módulos para dotar a la aplicación de más características, como lo son la base de datos, motores de plantillas entre otros.
FastAPI es un framework fácil de aprender e iniciar y de alto rendimiento; es ideal para crear toda clase de sitios que no solamente consisten en APIs, si no, podemos instalar un manejador de plantillas para devolver páginas web completas.
FastAPI es un framework web estupendo para la creación de APIs web con Python; nos ofrece múltiple características con las cuales es posible la creación de APIs modulares, bien estructuradas, escalables y con muchas opciones como validaciones, formatos, tipados entre otros.
Este libro está dirigido a cualquier persona que quiera aprender a desarrollar en FastApi sus primeras APIs.
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:
Vamos a hacer unas pruebas para acceder a Python 3.
Vamos a crear el ambiente virtual.
Vamos a instalar el framework web y el servidor web.
Vamos a conocer algunos comandos básicos para trabajar en un proyecto en Python en general.
Vamos a crear un hola mundo.
Veremos algunas opciones del comando.
Conoceremos los tipos de rutas.
Veremos cómo usar argumentos en las rutas.
Vamos a presentar como usar la consola de Python, ideal para hacer pruebas.
Vamos a conocer como crear los archivos para programar en Python.
Vamos a conocer cómo emplear las variables y sus tipos de datos.
Vamos a conocer cómo funcionan las operaciones matemáticas en Python.
Vamos a conocer cómo funcionan las concatenaciones de String en Python.
Vamos a aprender a realizar casteos o conversión entre distintos tipos.
Vamos a aprender a trabajar con las listas.
Vamos a conocer el uso de los condicionales.
Vamos a conocer el uso de los ciclos while y for.
Daremos los primeros pasos con las funciones en Python
Daremos los primeros pasos con las funciones en Python
Vamos a conocer el uso de los diccionarios.
Vamos a hablar sobre las clases, su propósito, importancia y características bases.
Vamos a crear la primera clase y definir sus atributos y métodos.
Vamos a conocer como trabajar con los métodos constructores.
Vamos a conocer cómo emplear la herencia de clases.
Veremos cómo trabajar con la clase de APIRouter para las rutas.
Vamos a crear un nuevo archivo para crear rutas y funciones operadoras adicionales.
Vamos a crear un CRUD básico.
Vamos a colocar un prefijo a las rutas de los métodos agrupados para las tareas.
Vamos a aprender a manejar valores con valores fijos.
Vamos a colocar la clase definida antes en un archivo aparte para garantizar una aplicación modular.
Vamos a conocer cómo agregar validaciones por cotas en el query string.
Vamos a conocer cómo agregar validaciones por cotas en e los argumentos del path.
Vamos a aprender a pasar datos mediante el body de la petición.
Vamos a crear una clase para manejar los parámetros de la petición
Vamos a aplicar validaciones sobre la clase modelo.
Aprenderemos a crear relaciones entre las clases modelos.
Veremos que podemos usar las operaciones típicas en la orientación de objetos como lo es la herencia.
Vamos a conocer los tipos de documentaciones.
Vamos a crear validaciones locales al campo en la clase modelo.
Vamos a conocer como validar por campos de tipo, email, urls o en pocas palabras, estos datos con una estructura en particular.
Vamos a conocer como trabajar con argumentos opcionales.
Vamos a crear una propiedad en la clase de tipo lista.
Vamos a dar un repaso de los códigos de estados.
Vamos a personalizar el código de estado devuelto en la cabecera de los métodos de la api.
Vamos a manejar excepciones desde la aplicación.
introducción
Vamos a conocer como generar datos de prueba en las clases modelos.
Vamos a conocer cómo colocar datos de ejemplos en los métodos de la API.
Vamos a conocer cómo colocar datos de ejemplos en los métodos de la API.
Hablaremos como usar el upload de archivos.
Vamos a crear el esquema de rutas para esta sección.
Vamos a realizar un ejemplo de la clase File.
Veremos cómo trabajar con la clase UploadFile.
Vamos a aprender a guardar un archivo en una carpeta.
Vamos a aprender a cargar múltiples archivos.
Vamos a conocer la razón de la importancia de usar una base de datos y del paquete que se va a encargar de realizar la conexión.
Vamos a instalar las dependencias para la base de datos. $ pip install sqlalchemy mysql-connector-python
Vamos a crear la conexión a la base de datos. from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker DATABASE_URL = "mysql+mysqlconnector://root:root@localhost:3306/tasks" engine = create_engine(DATABASE_URL) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base()
Vamos a realizar unos cambios en la clase modelo actual.
Vamos a crear la clase modelo para la base de datos.
Vamos a crear las tablas (tabla) en la base de datos.
Vamos a ver unos posibles problemas al momento de realizar la conexion a la bd.
Vamos a ver unos posibles problemas en la creación de la tabla, como serían que el modelo no fue importado al igual que una conexión inválida.
Vamos a crear la conexión para la base de datos.
Vamos a probar la conexión a la desde los métodos de la API.
Vamos a mostrar cómo obtener un registro desde la base de datos usando sqlalchemy.
Vamos a realizar una demostración de sobre el uso del yield y el return.
Vamos a dar un resumen de todo lo realizado en esta sección.
Vamos a crear la conexión a la base de datos para obtener el detalle de una tarea por la PK.
Vamos a crear la conexión a la base de datos para obtener todas las tareas.
Vamos a crear la conexión a la base de datos para crear una tarea.
Vamos a crear la conexión a la base de datos para actualizar una tarea.
Vamos a crear la conexión a la base de datos para eliminar una tarea.
* Cambio para Pydantic 2v
Vamos a crear una paginación de tareas.
Crearemos la primera relación, que es de uno a muchos y veremos cómo relacionar las tareas a las categorías y crear la relación de categorías.
Crearemos la primera relación, que es de uno a muchos y veremos cómo relacionar las tareas a las categorías y crear la relación de categorías.
Vamos a aplicar los cambios relacionales en el CRUD a la base de datos.
Vamos a obtener las relaciones de usuario y categoría desde la tarea.
Vamos a obtener la relación de tareas desde las categorías y usuarios.
Vamos a obtener la relación de tareas desde los usuarios.
Adaptamos el método de listado de la rest api para que obtenga las tareas desde la base de datos.
Moveremos la data de ejemplo para que esté definida en un archivo aparte.
Adaptamos el método de actualizar de la rest api para que actualice una tarea en la base de datos.
Crearemos el método de detalle en la rest api.
Adaptamos el método de eliminar de la rest api para que elimine una tarea en la base de datos.
Crearemos una validación sobre el método de detalle en el crud para verificar si el ID existe.
Vamos a colocar en el retorno al crear y actualizar la tarea manejada.
Integración de las clases de SQLAlchemy y Pydantic en la respuesta de los métodos de la API
Vamos a conocer como crear modelos en Pydantic personalizados para cada situación.
Vamos a conocer como podemos remover columnas al momento de la consulta.
Vamos a conocer las relaciones de tipo muchos a muchos.
Vamos a realizar pruebas con las relaciones de tipo muchos a muchos.
Vamos a conocer como establecer fechas para la creación y actualización de los registros.
Vamos a crear un par de métodos para agregar/remover etiquetas a la tarea.
Veremos cómo solucionar una excepción que ocurre al manejar la relación de muchos a muchos.
Hablaremos sobre el motor de plantillas de Jinja.
Vamos a instalar y configurar Jinja en el proyecto.
Veremos el primer bloque de control, el condicional.
Veremos el bloque de control for.
Vamos a introducir los filtros en Jinja.
Vamos a presentar el primer filtro, el que permite imprimir un contenido por defecto cuando la expresión es nula.
Vamos a conocer cómo imprimir textos HTML o similares de manera segura.
Conversión entre tipos numéricos.
Devolver el máximo o mínimo de una lista.
Redondeamos un valor.
Reemplazamos un texto por otro.
Vamos a conocer cómo unir textos en una lista.
Vamos a conocer cómo convertir textos a minusculas y mayusculas.
Vamos a conocer cómo invertir un texto o lista.
Vamos a conocer cómo obtener el tamaño de un texto o lista.
Vamos a conocer cómo ordenar una lista.
Vamos a conocer cómo dividir una lista en sublistas.
Vamos a conocer cómo establecer variables en el template.
Daremos una introducción a los bloques.
Vamos a presentar el bloque con el cual podremos imprimir el contenido sin procesar.
Vamos a conocer el equivalente de las funciones en Jinja 2.
Vamos a dar una introducción a los templates.
Vamos a crear un template maestro para la aplicación.
Vamos a mostrar un listado de tareas en el template creado anteriormente.
Vamos a crear una tarea mediante peticiones fetch en JavaScript.
Vamos a crear tareas mediante un formulario en HTML y peticiones fetch.
Vamos a establecer la estructura inicial para editar registros.
Vamos a terminar los detalles para editar una tarea.
Vamos a implementar la fase de eliminación.
Vamos a implementar la fase de eliminación.
Vamos a ver y hablar sobre la implementación que vamos a llevar a cabo.
Vamos a adaptar el método de creación de tareas para que pueda crear tareas mediante un formulario HTML.
Daremos un resumen de las dependencias y veremos un ejemplo de cómo usar las dependencias mediante atributos.
Vamos a inyectar una dependencia en el decorador de las rutas.
Vamos a conocer como reutilizar una dependencia como variable y en el argumento de las funciones.
Daremos una introducción a los middleware como intermediarios entre la petición del usuario y los métodos de la API.
Crearemos un middleware de ejemplo que se encargue de verificar el tiempo de operación de los métodos de la API.
Hablaremos sobre la autenticación en la aplicación y sus posibles implementaciones en la aplicación.
Veremos el primer esquema más simple para trabajar con un usuario autenticado y un token.
Hablaremos sobre el desarrollo a implementar en los siguientes videos.
Instalamos la librería para manejar los hash.
Vamos a crear el modelo de los tokens y colocar el campo password al usuario.
Vamos a modificar el esquema de usuarios para el campo password y crear el modelo de tokens.
Vamos a crear el archivo para comparar las contraseñas, generar un hash y el token.
Vamos a crear la función para hacer el login.
Vamos a crear la función para crear el token de acceso del usuario.
Vamos a crear la ruta crear un usuario.
Vamos a crear la ruta para crear el token.
Vamos a crear un esquema para proteger rutas por el token autenticado.
Vamos a crear un método para proteger las rutas de la aplicación.
Vamos a implementar el logout.
Vamos a conocer cómo emplear la dependencia de OAuth2PasswordBearer para proteger las rutas.
Vamos a agregar condiciones adicionales para eliminar un token expirado o devolver un token válido al momento de crear el token.
Vamos a conocer la notación de los 3 puntos.
Vamos a hablar sobre el uso de las anotaciones.
Vamos a ver unos ejemplos usando las anotaciones.
Vamos a conocer los tipos de datos devueltos.
Daremos las primeras pautas en el uso de las pruebas unitarias.
Vamos a crear unas funciones matemáticas para introducir el uso de las pruebas unitarias.
Evaluaremos otros casos en el uso de las pruebas unitarias.
Vamos a conocer cómo probar código en puntos finales.
Daremos una presentación de cómo ejecutar código asíncrono en Python.
Vamos a crear un primer ejemplo simple usando el loop event.
Vamos a crear un segundo ejemplo simple usando el loop event con ejecutar código en el background de manera paralela.
Vamos a empezar a configurar el entorno para realizar las pruebas a nuestra API, comenzamos definiendo la BD y un archivo para habilitar el modo asíncrono en pytest.
Vamos a crear la función para generar el loop.
Vamos a crear la función para generar el cliente.
Vamos a crear el cuerpo de la función para probar el registro del usuario.
Vamos a probar la prueba unitaria creada anteriormente.
Vamos a implementar la prueba unitaria para el login.
Vamos a implementar la prueba unitaria para el logout.
Vamos a implementar la prueba unitaria para crear una tarea mediante un request en JSON.
Vamos a probar el método de creación mediante los datos establecidos en el FormData.
Vamos a crear la prueba para actualizar la tarea.
Vamos a realizar la prueba para obtener todas las tareas.
Vamos a realizar la prueba para obtener el detalle de una tarea.
Probar modulo de tareas: eliminar tareas
Vamos a realizar una prueba para eliminar una tarea que no exista y concluir el tema dando un resumen del propósito de las pruebas y de qué otras pruebas se pueden implementar para nuestra api.
Veremos de manera teórica como usar el módulo de TestClient junto con sus configuraciones.
Implementamos las configuraciones base de TestClient.
Vamos a implementar la prueba unitaria para registrar un usuario.
Vamos a implementar la prueba unitaria para el login.
Vamos a implementar la prueba unitaria para el logout.
Vamos a implementar la prueba unitaria para crear una tarea mediante un request en JSON.
Vamos a probar el método de creación mediante los datos establecidos en el FormData.
Vamos a crear la prueba para actualizar la tarea.
Vamos a realizar la prueba para obtener todas las tareas.
Vamos a realizar la prueba para obtener el detalle de una tarea.
Vamos a realizar la prueba para eliminar una tarea.
Vamos a realizar una prueba para eliminar una tarea que no exista y concluir el tema dando un resumen del propósito de las pruebas y de qué otras pruebas se pueden implementar para nuestra api.
Vamos a utilizar un módulo de pytest para generar un token y probar un método de la API con un token con un valor fijo.
Vamos a realizar la prueba para probar el token en la BD.
Vamos a crear una prueba para poder probar un recurso protegido con OAuth2PasswordBearer.
Veremos cómo seleccionar el intérprete de Python para tu ambiente virtual en VSC.
Vamos a conocer como activar el modo debug en VSC.
Vamos a conocer como trabajar con tareas pesadas.
Vamos a conocer como generar datos de prueba en las clases modelos.
Vamos a colocar las relaciones en la data de prueba del modelo.
Vamos a crear una lista de opciones de los ejemplos en los modelos.
Vamos a conocer cómo colocar datos de ejemplos en los métodos de la API.
Vamos a conocer cómo colocar un listado de datos de ejemplo en las primitivas de los métodos de la API.
- Andrés Cruz
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter
Acepto recibir anuncios de interes sobre este Blog.
!Cursos desde!
10$
En Udemy
Quedan 4d 19:20!
!Cursos desde!
4$
En Academia
Ver los cursos!Libros desde!
1$
Ver los libros