Para quien quiera revisar la documentación de Uvicorn
Uvicorn
Introducción
Python en tu propio entorno de desarrollo local
Instalación en Windows (WSL) y Linux
Instalación en Mac
Python con VSCode
Python con Git y GitHub
Flujo de trabajo en Python
PIP y Entornos Virtuales
¿Qué es pip?
Gráficas en Python con PIP
¿Qué es un ambiente virtual?
Usando entornos virtuales en Python
requirements.txt
Práctica
Solicitudes HTTP con Requests
Pandas
Python para Backend: web server con FastAPI
Python en contenedores de Docker
¿Qué es Docker?
Instalación de Docker
Dockerizando scripts de Python
Docker para el día a día: automatizando la vinculación de archivos
Dockerizando web services
Próximos pasos
¿Cómo continuar tu carrera profesional con Python?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Nicolas Molina
Aportes 44
Preguntas 15
Para quien quiera revisar la documentación de Uvicorn
Uvicorn
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
****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
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
app.run()
🤖 _Rutina de la clase_👇
__
cd ../web-server
source env/bin/activate
pip3 install fastapi
pip3 install "uvicorn[standard]"
pip3 freeze
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.
.
– reload quiere decir que se cargue automáticamente.
.
.
from fastapi.responses import ORJSONResponse
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.
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.
Ú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.
Para más información, contáctanos en [email protected]
</body> </html> """ def run(): store.get_categories() if __name__ == '__main__': run() ```Ú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.
Para más información, contáctanos en [email protected]
</body> </html> """ def run(): store.get_categories() if __name__ == '__main__': run() ```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.
✅
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
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 :’)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?