
Vamos a hacer unas pruebas para acceder a Python 3.
Vamos a hacer unas pruebas para acceder a Python 3.
Vamos a crear el ambiente virtual.
Ahora podrás ver tus endpoints y buscarlos de una manera sencilla y rápida con esta extensión oficial.
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.
Te dejo la web en donde puedes practicar en base a preguntas el módulo que acabas de terminar, desde la misma, puedes seleccionar la sección a practicar
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.
Vamos a hablar sobre los módulos en Python.
Vamos a realizar un ejercicio sobre los módulos en Python.
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 trabajar con argumentos opcionales.
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.
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.
Vamos a crear la conexión a la base de datos.
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 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 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.
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 siguiente relación, que es de uno a muchos y veremos cómo relacionar las tareas a los usuarios y crear la relación de usuarios.
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 crear de la rest api para que crea una tarea en la base de datos.
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.
Vamos a conocer como podemos usar clases de Pydantic en las respuestas 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.
Vamos a configurar Alembic para poder emplearlo y crear la primera migración.
Vamos a aplicar migraciones de base de datos.
Veamos los 3 tipos de esquemas que podemos revertir los cambios, con números, por el ID de la migración y de base.
Aprende cómo instalar MongoDB en macOS con Homebrew paso a paso, hablamos sobre las Base de Datos NoSQL e instalar el GUI Compose.
Instalamos y hablamos sobre motor para poder realizar conexiones a MongoDB.
Creamos un método para conectarse a MongoDB y hacer un ping al iniciar el proyecto en FastAPI.
Implementamos un CRUD de tareas en MongoDB usando Motor en FastAPI.
Mostraremos como manejar el esquema relacional en una relación de tipo muchos a muchos no normalizada.
Hablemos del resto de las relaciones en MongoDB.
Creamos una relación NO normalizada con una clase de Pydantic entre Tareas y categoría.
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 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.
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.
Hablamos sobre como podemos crear Sub-dependencias y su utilidad.
Vamos a explicar un patrón de diseño y el uso CLAVE de las dependencias en FastAPI en todo esto.
Hablamos sobre el uso de las dependencias avanzadas usando los yields.
Hablamos sobre el uso de los pools que es CRUCIAL para que FastAPI pueda resolver peticiones de manera eficiente.
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.
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:
Pydantic que permite la creación de modelos para la validación de datos.
Starlette, que es un tooltip ASGI liviano, utilizado para crear servicios web asíncronos (o síncronos) en Python.
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.
Este curso es mayoritariamente práctico, iremos conociendo los fundamentos de FastAPI, conociendo sus características principales en base a una pequeña aplicación que iremos extendiendo capitulo tras capitulo y cuyo contenido puedes ver a continuación:
Sección 1: En este capítulo vamos a presentar el software necesario para crear proyectos en FastAPI, qué pasa desde Python, hasta preparar el entorno.
Sección 2: Presentamos algunos comandos imprescindibles para desarrollar en FastApi, prepararemos el entorno y daremos una introducción al framework.
Sección 3: Uno de los factores primordiales en FastApi, es la creación de recursos para la API mediante funciones, en este apartado trataremos las bases de esto introduciendo el ruteo entre múltiples archivos así como las distintas opciones para los argumentos y parámetros de estas rutas.
Sección 4: En este apartado aprender a manejar los códigos de estado en HTTP de los métodos de la API y también controlar los errores/excepciones desde los métodos de la API.
Sección 5: En este apartado veremos cómo crear datos de ejemplos para utilizar desde la documentación automática que ofrece FastAPI para cada uno de los métodos de la API.
Sección 6: En este capítulo veremos cómo implementar la carga de archivos, conociendo las diferentes variantes existentes en FastAPI.
Sección 7: En este capítulo veremos cómo conectar una aplicación en FastAPI a una base de datos relacional como lo es MySQL.
Sección 8: En este capítulo veremos instalar y emplear un motor de plantillas en Python, específicamente el de Jinja con el cual podremos devolver respuestas en formato HTML.
Sección 9: En este capítulo aprenderemos cómo usar las dependencias.
Sección 10: En este capítulo veremos cómo usar los middlewares para interceptar peticiones a los métodos de la API y ejecutar algún procedimiento antes del request o después de generar la respuesta.
Sección 11: En este capítulo veremos cómo crear un módulo de usuario, para registrar usuarios, realizar el login, generar tokens de acceso y hacer el logout.