No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Python para Backend: web server con FastAPI

14/20
Recursos

Aportes 44

Preguntas 15

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para quien quiera revisar la documentación de Uvicorn
Uvicorn

Que buen glow up le dieron a "la saga" de estos cursos, usted es un excelente profesor!

Recuerden que se puede crear un alias para no estar ejecutando el mismo código siempre

source enc/bin/activate

La manera de hacerlo podría ser:

alias avenv="source enc/bin/activate"

avenv es una abreviatura de “activate virtual environment”, ese nombre es una sugerencia, puedes colocar cualquier otro.

modelo: alias <nombre del alias>="<comando que guardará el alias>" es importante los espacios y las comillas

Espero les funcione 🤗🤗

FastAPI

  • Es un framework de Python para crear aplicaciones web rápidas y seguras. Utilice la mejor OpenAPI para definir la interfaz de la aplicación y proporcione un conjunto de herramientas para validar y documentar la API de manera automática.

****Uvicorn ****

  • Es un servidor ASGI (Asynchronous Server Gateway Interface) de alto rendimiento para ejecutar aplicaciones ASGI como FastAPI. Es una alternativa a otros servidores ASGI como Daphne y Hypercorn.

  • FastAPI y Uvicorn se utilizan juntos para proporcionar un entorno rápido y fácil de usar para el desarrollo y el uso de aplicaciones web basadas en ASGI.

pip install fastapi


  • A continuación, puede comenzar a crear su primera aplicación FastAPI. Por ejemplo, aquí tienes un ejemplo de una aplicación que expone una ruta “/” que recibe una solicitud GET y devuelve un mensaje de bienvenida:
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

if __name__ == "__main__":
    app.run()

🤖 _Rutina de la clase_👇

__

  • Navegar a proyecto Web
cd ../web-server
  • Activar ambiente del proyecto
source env/bin/activate 
  • Agregar nuevas librerías FastAPI
pip3 install fastapi
  • Agregar ASGI (Asynchronous Server Gateway Interface) Uvicorn
pip3 install "uvicorn[standard]"
  • Verificar librerías instaladas
pip3 freeze
  • Actualizar Requirements
 pip3 freeze > requirements.txt

Para que el autocompletado sea el óptimo en todas las dependencias que usamos en un proyecto python, debemos siempre seleccionar en vscode el intérprete de python que se nos ha generado en el entorno virtual, por eso parece de esta manera 3.10.4 ('venv':venv) porque el nombre de mi entorno virtual es ‘venv’. Por defecto les aparecerá el interprete como entorno global sin los paréntesis, ejemplo: 3.10.4, es decir solamente la versión de python.

.
Como lo dije en otros aportes, si utilizan un manager de versiones de python como pyenv también desde vscode pueden seleccionar el intérprete que desean, claro esto antes deben asegurarse en la terminal que tienen activa tal versión de python, por ejemplo:

Que lindo sería que Nicolás lleve adelante nuevos cursos de las tres tecnologías de Python para Backend: FastAPI, Flask y Django.

Web server con FastAPI y Uvicorn:


.

  1. ¿cómo hacer una API?
    .
    Si alguien intenta hacer una petición a nuestra web podemos hacer que se le retornen datos con una función usando app.get(’/’), con la url a la que le harán peticiones. De esta forma estaremos creando una API.
    .
    .

– reload quiere decir que se cargue automáticamente.

.

  1. ¿Cómo lanzar nuestra API?:
    .
    Ahora estaremos haciendo uso de uvicorn para lanzar nuestra aplicacón:
    .

    En la segunda linea del output de la terminal puedes ver que nos da una ip y un puerto (recuerda que lo puedes verificar con localhost):
    .

.

  1. ¿Cómo devolver un HTML?
    .
    Importa la subclase (si a esto se le llama subclase):
from fastapi.responses import ORJSONResponse
  • y de esta forma envias html mediante una función:
    .

Después de, literalmente, 35 cursos de Platzi puedo decir que este es el mejor que he hecho. Curso conciso, preciso y completo.

La ruta de JS es buena e interesante, sin embargo esta clase me hizo ver en definitiva que las rutas de python en mucho menos tiempo te ponen a un nivel realmente bueno en programación.

Para quienes estén viendo este curso en 2024, los pasos para usar FastAPI cambiaron un poco (por eso siempre es bueno revisar la documentación oficial jaja), aquí les dejo los comandos para instalar FastAPI y levantar el server: ``` $ pip install "fastapi\[standard]" $ fastapi dev main.py ```

Otra de las formas de poder usar uvicorn es implementando su modulo en el codigo y usando algunos de sus metodos incorporados.

para quien tenga problemas con la ejecucion de uvicorn instalenlo asi:

sudo apt-get install uvicorn

y a seguir aprendiendooooo

Buenísima esta clase! Como todas las de Nico, pero esta en especial porque tienen un adelanto de lo que quiero aprender

si no les funciona el comando
instalen uvicorn con

pip install uvicorn

Platzibot dice de Uvicorn:
Uvicorn es un servidor web ASGI de alto rendimiento, diseñado para ser utilizado con aplicaciones Python 3.6+ basadas en ASGI (Asynchronous Server Gateway Interface). ASGI es una especificación para servidores web que permite la comunicación asíncrona entre el servidor y las aplicaciones web, lo que puede mejorar significativamente el rendimiento y la escalabilidad de las aplicaciones.

Hola guapos!!
Siento que el profe explica estos conceptos de forma muy vaga. Por lo que les comparto mis apuntes para que le entiendan un poco mejor:
API: Un api es una forma de comunicar dos aplicaciones, librerias, etc… Para compartir datos, realizar acciones y aprovechar los servicios de aplicaciones externas. Esto nos sirve para hacer aplicaciones mas poderosas y complejas
FastAPI: nos sirve para controlar las solicitudes y entradas que nuestro servidor web pida. Es un comunicador entre nuestro codigo y el servidor web
Uvicorn: Es la libreria que aloja y mantiene nuestro servidor web

import store
from fastapi import FastAPI
from fastapi.responses import HTMLResponse

app = FastAPI() #Instancia de FastAPI

@app.get('/') #Funcion decorada: Cada que se obtenga la ruta '/' se ejecutara la siguiente funcion
def get_list():
    return [2,3,4,5,6,7,8,9,0] #Devolvera una lista de nuemros 

@app.get('/main', response_class=HTMLResponse) #Funcion decorada: Cada que se obtenga la ruta '/main' tendra una respuesta de tipo HTMl
def get_main():                                #Esto es para que pueda soportar una solicitud HTML y funcione la pagina
    return """    #Regresa un HTML
        <h1>Hola papirrin</h1>
        <p>No eres una pagina, eres lo que tu quieras ser querida</p>
        <img src="quico.jpg" width="300" height="200">
    """

def run():
    store.get_categories()

if __name__ == '__main__':
    run()

Importante
app = FastAPI()

Se utiliza para crear una instancia la cual cuando sea mandada a llamar mediante la ruta establecida por una peticion HTTP a una URL ejecutara un función que devolvera un valor dado

De FastApi hay unos cursos especificos también en la lista para seguir aprendiendo

En pocas palabras

FAST API es un framework para crear APIS en Python

** Uvicorn** es un servidor web asincronico quiere decir que maneja varias solicitudes al mismo tiempo

solo dire una cosa, que clase tan magistral

Lanzar un servidor desde un contenedor en Docker en lugar de hacerlo directamente desde tu PC tiene varias ventajas:

Portabilidad: Al utilizar un contenedor de Docker, puedes estar seguro de que el servidor se ejecutará de la misma manera en cualquier sistema operativo o plataforma que tenga Docker instalado, lo que hace que sea más fácil mover el servidor entre diferentes entornos sin tener que preocuparse por las configuraciones específicas del sistema operativo.

Aislamiento: Docker te permite aislar tu servidor y sus dependencias en un contenedor, lo que significa que no afectará a tu sistema operativo ni a otros servicios que se estén ejecutando en tu PC. Esto hace que sea más fácil manejar y mantener tu servidor de manera independiente.

Escalabilidad: Si necesitas ejecutar varias instancias del mismo servidor o escalar el servidor para manejar una carga de trabajo más pesada, Docker te permite hacerlo de manera fácil y rápida al crear múltiples contenedores del mismo servidor. También puedes implementar tus contenedores de Docker en un clúster para una mayor capacidad de procesamiento y alta disponibilidad.

Gestión de versiones: Al utilizar Docker para ejecutar tu servidor, puedes garantizar que la versión exacta del software que necesitas esté disponible y se ejecute de manera consistente en cualquier sistema. Puedes crear una imagen de tu servidor que contenga todas las dependencias necesarias y distribuir esa imagen a cualquier equipo para garantizar la consistencia de la versión.

En resumen, Docker te permite ejecutar tu servidor de manera independiente y portátil, lo que hace que sea más fácil de manejar y mantener, y te da la flexibilidad de escalar y distribuir tu servidor de manera más efectiva.

Se puede literalmente levantar un sitio web: ```python import store from fastapi import FastAPI from fastapi.responses import HTMLResponse app = FastAPI() # decorador @app.get('/') def get_list(): return[1, 2, 3] @app.get('/contact') def get_list(): return {'name': 'Platzi'} @app.get('/home', response_class=HTMLResponse) def get_list(): return """ <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Juegos Paralímpicos 2024</title> <link rel="icon" href="https://i.pinimg.com/1200x/06/7a/af/067aaf6172e95b06aa0a5e870bc814e1.jpg" type="image/svg+xml"> </head> <body> <h1 style="text-align: center; color: #2e8b57; font-family: Arial, sans-serif; margin-top: 20px;"> Juegos Paralímpicos 2024

Únete a la celebración del deporte, la inclusión y la excelencia. Los Juegos Paralímpicos 2024 reúnen a atletas de todo el mundo para demostrar que no hay límites para el espíritu humano.

Eventos Destacados

  • Atletismo
  • Natación
  • Baloncesto en silla de ruedas
  • Esgrima
  • Levantamiento de pesas

Patrocinadores Oficiales

Para más información, contáctanos en [email protected]

</body> </html> """ def run(): store.get_categories() if __name__ == '__main__': run() ```
```python import store from fastapi import FastAPI from fastapi.responses import HTMLResponse app = FastAPI() # decorador @app.get('/') def get_list(): return[1, 2, 3] @app.get('/contact') def get_list(): return {'name': 'Platzi'} @app.get('/home', response_class=HTMLResponse) def get_list(): return """ <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Juegos Paralímpicos 2024</title> <link rel="icon" href="https://i.pinimg.com/1200x/06/7a/af/067aaf6172e95b06aa0a5e870bc814e1.jpg" type="image/svg+xml"> </head> <body> <h1 style="text-align: center; color: #2e8b57; font-family: Arial, sans-serif; margin-top: 20px;"> Juegos Paralímpicos 2024

Únete a la celebración del deporte, la inclusión y la excelencia. Los Juegos Paralímpicos 2024 reúnen a atletas de todo el mundo para demostrar que no hay límites para el espíritu humano.

Eventos Destacados

  • Atletismo
  • Natación
  • Baloncesto en silla de ruedas
  • Esgrima
  • Levantamiento de pesas

Patrocinadores Oficiales

Para más información, contáctanos en [email protected]

</body> </html> """ def run(): store.get_categories() if __name__ == '__main__': run() ```
Aquí tienes 5 razones por las que "Python para Backend: web server con FastAPI" es importante: 1. **Alto Rendimiento**: FastAPI está diseñado para ser rápido y eficiente, aprovechando las características modernas de Python, como `asyncio`. Esto lo convierte en una excelente opción para construir APIs que pueden manejar una gran cantidad de solicitudes simultáneamente, lo que es crucial para aplicaciones de alto rendimiento. 2. **Facilidad de Uso y Productividad**: FastAPI es conocido por su simplicidad y facilidad de uso, lo que permite a los desarrolladores crear APIs rápidamente con menos código. Además, tiene una excelente documentación, lo que reduce el tiempo de desarrollo y facilita el aprendizaje. 3. **Validación Automática de Datos**: FastAPI utiliza Pydantic para la validación automática de datos, lo que garantiza que los datos que entran en tu API sean correctos antes de que sean procesados. Esto reduce errores y mejora la seguridad de la aplicación. 4. **Compatibilidad con Python Asíncrono**: FastAPI está construido desde cero para trabajar con Python asíncrono, lo que significa que puedes manejar tareas concurrentes de manera más eficiente, mejorando la capacidad de respuesta de tu servidor. 5. **Documentación Automática**: FastAPI genera automáticamente documentación interactiva para tu API utilizando Swagger y ReDoc. Esto no solo ahorra tiempo, sino que también facilita la interacción con tu API para otros desarrolladores y equipos que puedan trabajar con ella.
### ¿Para qué sirve una API? 1. **Intercambio de Datos**: Las APIs permiten que diferentes aplicaciones o servicios se comuniquen y compartan datos entre sí. Por ejemplo, una app de clima podría usar una API para obtener datos meteorológicos de un servidor. 2. **Automatización de Procesos**: Las APIs permiten automatizar tareas o procesos, como la publicación automática en redes sociales, la obtención de precios de productos de una tienda en línea, o la integración de servicios de pago en una aplicación. 3. **Conectar Aplicaciones**: Las APIs permiten que aplicaciones diferentes trabajen juntas. Por ejemplo, un servicio de mapas como Google Maps puede ser integrado en otra aplicación para mostrar ubicaciones. 4. **Acceso a Funcionalidades**: Las APIs permiten a los desarrolladores acceder a funcionalidades de un sistema sin tener que entender completamente cómo funciona internamente. Esto es útil, por ejemplo, cuando quieres integrar funciones avanzadas como reconocimiento de voz o procesamiento de pagos en tu aplicación. 5. **Extensión de Servicios**: Las APIs permiten que las empresas amplíen sus servicios. Por ejemplo, una tienda en línea puede ofrecer una API para que otras aplicaciones puedan mostrar sus productos y realizar compras directamente.
Este curso es una maravilla! Me impresiona lo facil que es levantar backend en Python a comparación con otros lenguajes de programación. Voy a seguir profundizando.

Me gusto esta clase de python. Es lo que queria saber mas acerca de fastapi. Es una heramienta que me gusta mucho y me permite aprender mas acerca del funcionamiento de nuestra computadora. Este framework es lo que esperaba.

que tal campeon, beun dia Un par de investigacion aqui y alla, lo logre. ![](https://static.platzi.com/media/user_upload/artist_info-2532e8a5-3254-4d99-ae05-a41815a58695.jpg) ![](https://static.platzi.com/media/user_upload/tracks-29d73e9e-f1f9-4734-8e89-f813a0505c23.jpg)
Lo estoy tratando de hacer desde wsl pero me da un error, este es el código: ![](https://static.platzi.com/media/user_upload/image-f5dffc7c-f87a-4c65-b0f4-8a89d0cc3d8b.jpg) Este es el error ![](https://static.platzi.com/media/user_upload/image-7bf0d434-9309-48f2-bf38-7677950a2772.jpg)

Obtuve los siguientes errores y las acciones para correr el web server:

a) pkg_resources.DistributionNotFound: The ‘uvloop>=0.14.0’ distribution was not found and is required by uvicorn:. Acción: $sudo apt-get install uvicorn
b) ModuleNotFoundError: No module named ‘requests’. Acción: instalar e importar request. $pip3 install requests
c) iniciar uvicorn con: $python -m uvicorn main:app --reload

De 100 está clase ,las demás también,conciso y y muy claro, aplausos

14. Python para Backend: web server con FastAPI

uvicorn servidor web para correr mis aplicaciones como servidor

uvicorn main:app --reload # Para correr mi aplicación en un servidor # reaload para volver a cargar el comando cada vez que modifique el archivo principal

Aqui es donde me di cuenta que pip3 es mejor que conda cuando se trata de trabajar con back-end ya que te tienes que meter a los canales de conda-forge para poder descargar esas dependencias

y que hace el decorador ?

Fenomenal este capitulo del curso, como montar un pequeño servidor web, super interesante y apasionante…

Aqui los comandos para instalar las librerias

pip3 install fastapi
pip3 install "uvicorn[standard]"

Aparecieron los tipos!!!, por fin

Holaa, les comparto un proyecto que realicé con FastAPI, SQL, Virtualenv y Uvicorn: https://github.com/Jeanfabra/fastapi-sqlite-heroku

Esta clase es muy buena, me recordo mucho al uso de fakeapi.

Es una clase realmente practica. Yo creo que hay algunas cosas como los decoradores en los que se les pudo dar más enfásis en la explicación o al menos informar a novatos (incluyendome) de que en un futuro tales instancias cobrarán sentido. He quedado satisfecho salvo por ello (siguiendo la escuela actual de data scientist).

Excelente clase, muy bien explicada

Si no les permite instalar websockets 10 o superior deben asegurarse de estar usando python 3.7 > en el entorno virtual ya que pueden tener una version instalada globalmente y otra inferior corriendo en el entorno virtual como me sucedio a mi. Para que al que le suceda no pase horas buscando solucion como yo :’)