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 38

Preguntas 13

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥渁ctivate 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()

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 鈥榲env鈥. 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:

馃 _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

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 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

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

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.

solo dire una cosa, que clase tan magistral

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

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.

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 鈥榰vloop>=0.14.0鈥 distribution was not found and is required by uvicorn:. Acci贸n: $sudo apt-get install uvicorn
b) ModuleNotFoundError: No module named 鈥榬equests鈥. 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 :鈥)