CursosEmpresasBlogLiveConfPrecios

Python para Backend: web server con FastAPI

Clase 14 de 20 • Curso de Python: PIP y Entornos Virtuales

Contenido del curso

Introducción

  • 1
    Python en tu propio entorno de desarrollo local

    Python en tu propio entorno de desarrollo local

    03:26 min
  • 2
    Instalación en Windows (WSL) y Linux

    Instalación en Windows (WSL) y Linux

    06:54 min
  • 3
    Instalación en Mac

    Instalación en Mac

    06:02 min
  • 4
    Python con VSCode

    Python con VSCode

    04:25 min
  • 5
    Python con Git y GitHub

    Python con Git y GitHub

    08:23 min
  • 6
    Flujo de trabajo en Python

    Flujo de trabajo en Python

    07:36 min

PIP y Entornos Virtuales

  • 7
    ¿Qué es pip?

    ¿Qué es pip?

    12:45 min
  • 8
    Gráficas en Python con PIP

    Gráficas en Python con PIP

    12:49 min
  • 9
    ¿Qué es un ambiente virtual?

    ¿Qué es un ambiente virtual?

    04:54 min
  • 10
    Usando entornos virtuales en Python

    Usando entornos virtuales en Python

    09:36 min
  • 11
    requirements.txt

    requirements.txt

    22:40 min

Práctica

  • 12
    Solicitudes HTTP con Requests

    Solicitudes HTTP con Requests

    11:13 min
  • 13
    Pandas

    Pandas

    08:37 min
  • 14
    Python para Backend: web server con FastAPI

    Python para Backend: web server con FastAPI

    Viendo ahora

Python en contenedores de Docker

  • 15
    ¿Qué es Docker?

    ¿Qué es Docker?

    02:25 min
  • 16
    Instalación de Docker en Windows, macOS y Ubuntu

    Instalación de Docker en Windows, macOS y Ubuntu

    01:35 min
  • 17
    Dockerizando scripts de Python

    Dockerizando scripts de Python

    16:36 min
  • 18
    Docker para el día a día: automatizando la vinculación de archivos

    Docker para el día a día: automatizando la vinculación de archivos

    04:29 min
  • 19
    Dockerizando web services

    Dockerizando web services

    05:54 min

Próximos pasos

  • 20
    ¿Cómo continuar tu carrera profesional con Python?

    ¿Cómo continuar tu carrera profesional con Python?

    01:41 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Comentarios

      Andres Cervantes

      Andres Cervantes

      student•
      hace 3 años
        Jhonatan Sanchez

        Jhonatan Sanchez

        student•
        hace 2 años
        Angel Daniel Mendieta Castillo

        Angel Daniel Mendieta Castillo

        student•
        hace 2 meses
      Anabel Chavez Berumen

      Anabel Chavez Berumen

      student•
      hace 3 años
      Mateo Paloma

      Mateo Paloma

      student•
      hace 3 años
        Ricardo de Jesus Zapata Cruz

        Ricardo de Jesus Zapata Cruz

        student•
        hace 3 años
        Arelys Viloria

        Arelys Viloria

        student•
        hace 3 años
      Jhon Freddy Tavera Blandon

      Jhon Freddy Tavera Blandon

      student•
      hace 3 años
        Ruddy Ramos

        Ruddy Ramos

        student•
        hace 3 años
      Miguel Angel Arreola

      Miguel Angel Arreola

      student•
      hace 3 años
        Jeinfferson Bernal G

        Jeinfferson Bernal G

        student•
        hace 3 años
        Juan José Mamani Tarqui

        Juan José Mamani Tarqui

        student•
        hace 2 años
      Carlos Rodríguez

      Carlos Rodríguez

      student•
      hace 3 años
        Jaime Acosta

        Jaime Acosta

        student•
        hace 3 años
      Antonio Demarco Bonino

      Antonio Demarco Bonino

      student•
      hace 3 años
      Germán Salina

      Germán Salina

      student•
      hace 3 años
      Arelys Viloria

      Arelys Viloria

      student•
      hace 3 años
      Marcelo Garro

      Marcelo Garro

      student•
      hace 3 años
      Heberth López

      Heberth López

      student•
      hace 2 años
      N40 M10

      N40 M10

      student•
      hace 3 años
      Francisco Javier Pecino Leon

      Francisco Javier Pecino Leon

      student•
      hace 3 años
      Fidel Parabacuto

      Fidel Parabacuto

      student•
      hace 3 años
      Jared Arturo Olmos Villagran

      Jared Arturo Olmos Villagran

      student•
      hace 3 años
      Jaime Hernandez

      Jaime Hernandez

      student•
      hace 3 años
      Maga Hernandez

      Maga Hernandez

      student•
      hace 3 años
      Bobionwa .

      Bobionwa .

      student•
      hace 3 años
      Ulises Alejandro Mánica Caricio

      Ulises Alejandro Mánica Caricio

      student•
      hace 3 años
      Diego Jurado

      Diego Jurado

      student•
      hace 3 años

      Para quien quiera revisar la documentación de Uvicorn Uvicorn

      caballo homoxesual de las montañas

      Ningún animal se salva

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

      yo pensé lo mismo y creé el alias, pero lo llamé envon pues es la abreviación de Environment ON. me es mas facil de recordar y es chistoso tambien🤣

      Corrección:

      source env/bin/activate

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

      Gracias por el aporte.

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

      Buen aporte. Gracias!

      creo que falta antes de activar el ambiente, crearlo: python3 -m venv env

      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.

      Screenshot_1.png
      . 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:
      Screenshot_2.png

      Justo la respuesta que necesitaba! Gracias

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

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

      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. . .
        Captura desde 2023-03-22 18-30-55.png

      -- 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: .
        Captura desde 2023-03-22 18-58-17.png
        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): .
        Captura desde 2023-03-22 19-07-44.png

      .

      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: .
      Captura desde 2023-03-22 19-33-48.png

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

      code.png

      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

      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

      ¿FastAPI es una alternativa a Flask o este le hace frente a Django?

      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 <h2>Hola papirrin</h2> <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()
      carbon (22).png

      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