Python: Preparación de Python y Flask para el despliegue en producción

Esta documentación forma parte de la guía Creación de una API REST. Consulte la guía completa aquí: Cómo crear una API REST usando Flask.

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución nube de Python lista para usar que proporciona una serie de beneficios, incluyendo:

  • Despliegue su aplicación en segundos con un simple git push.
  • Use su propio nombre de dominio y benefíciese de la configuración automática de certificados HTTPS para una mayor seguridad.
  • Disfrute de la tranquilidad con copias de seguridad automáticas, actualizaciones con un clic, y precios sencillos, transparentes y predecibles.
  • Obtenga un rendimiento óptimo y una seguridad robusta gracias a una VM privada y dedicada.

Ahorre tiempo y simplifique su vida: solo toma 5 minutos probar la solución de alojamiento en la nube de Python de Stackhero.

Aunque esta guía usa el servidor de desarrollo integrado de Flask, para producción es esencial usar un servidor WSGI listo para producción como Gunicorn. Siga estos pasos:

  1. Instale Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. Inicie su aplicación usando Gunicorn con el argumento app:app (donde el primer app es el nombre del archivo y el segundo app es la instancia de Flask):

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    
  3. Cree un Makefile para simplificar el cambio entre los modos de desarrollo y producción:

    .DEFAULT_GOAL := dev
    
    # Por defecto, Stackhero para Python ejecuta la regla "run". La sobrescribimos para ejecutar la regla 'prod'.
    run: prod
    
    prod:
     	ENV=production gunicorn app:app \
     	  --error-logfile - \
     	  -b 0.0.0.0:8080
    
    dev:
     	python app.py
    

Puede ejecutar su servidor en modo desarrollo usando make dev (o simplemente make), y en modo producción usando make prod.