En este tema, aprenderás cómo desplegar una aplicación Flask en Heroku, una plataforma como servicio (PaaS) que permite a los desarrolladores construir, ejecutar y operar aplicaciones completamente en la nube. Heroku es una opción popular debido a su facilidad de uso y su integración con Git.

Requisitos Previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Una cuenta en Heroku (puedes registrarte en Heroku).
  • Git instalado en tu máquina.
  • La Heroku CLI instalada.

Pasos para Desplegar una Aplicación Flask en Heroku

  1. Preparar la Aplicación Flask

Primero, asegúrate de que tu aplicación Flask esté lista para ser desplegada. Esto incluye tener un archivo requirements.txt que contenga todas las dependencias de tu proyecto.

pip freeze > requirements.txt

Además, crea un archivo Procfile en la raíz de tu proyecto. Este archivo le dice a Heroku cómo ejecutar tu aplicación.

web: gunicorn app:app

En este ejemplo, app es el nombre del archivo principal de tu aplicación Flask (sin la extensión .py), y app es el nombre de la instancia de Flask.

  1. Crear un Repositorio Git

Si aún no tienes un repositorio Git para tu proyecto, crea uno y realiza un commit de tu código.

git init
git add .
git commit -m "Initial commit"

  1. Iniciar una Aplicación en Heroku

Inicia sesión en Heroku desde la línea de comandos.

heroku login

Crea una nueva aplicación en Heroku.

heroku create nombre-de-tu-aplicacion

Heroku asignará un nombre único a tu aplicación si no proporcionas uno.

  1. Configurar Variables de Entorno

Si tu aplicación Flask utiliza variables de entorno, configúralas en Heroku. Por ejemplo, si tienes una clave secreta para Flask:

heroku config:set SECRET_KEY='tu_clave_secreta'

  1. Desplegar la Aplicación

Despliega tu aplicación a Heroku utilizando Git.

git push heroku master

Heroku instalará automáticamente las dependencias listadas en requirements.txt y ejecutará el comando especificado en el Procfile.

  1. Verificar el Despliegue

Una vez que el despliegue se haya completado, puedes abrir tu aplicación en el navegador.

heroku open

  1. Monitorear y Depurar

Puedes ver los logs de tu aplicación para monitorear su funcionamiento y depurar problemas.

heroku logs --tail

Ejemplo Completo

A continuación, se muestra un ejemplo completo de una aplicación Flask simple y los pasos para desplegarla en Heroku.

Estructura del Proyecto

my-flask-app/
│
├── app.py
├── requirements.txt
└── Procfile

Código de app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Heroku!"

if __name__ == '__main__':
    app.run(debug=True)

Contenido de requirements.txt

Flask==2.0.1
gunicorn==20.1.0

Contenido de Procfile

web: gunicorn app:app

Comandos para Desplegar

# Inicializar Git y realizar commit
git init
git add .
git commit -m "Initial commit"

# Iniciar sesión en Heroku
heroku login

# Crear una nueva aplicación en Heroku
heroku create my-flask-app

# Desplegar la aplicación
git push heroku master

# Abrir la aplicación en el navegador
heroku open

Conclusión

Desplegar una aplicación Flask en Heroku es un proceso sencillo que implica preparar tu aplicación, crear un repositorio Git, configurar Heroku y desplegar tu código. Heroku se encarga de la infraestructura, permitiéndote concentrarte en el desarrollo de tu aplicación. En el siguiente tema, aprenderemos cómo desplegar aplicaciones Flask en AWS, otra plataforma popular para el despliegue de aplicaciones web.

Curso de Desarrollo Web con Flask

Módulo 1: Introducción a Flask

Módulo 2: Conceptos Básicos de Flask

Módulo 3: Formularios y Entrada de Usuario

Módulo 4: Integración de Bases de Datos

Módulo 5: Autenticación de Usuarios

Módulo 6: Conceptos Avanzados de Flask

Módulo 7: APIs RESTful con Flask

Módulo 8: Despliegue y Producción

Módulo 9: Pruebas y Mejores Prácticas

Módulo 10: Extensiones y Ecosistema de Flask

© Copyright 2024. Todos los derechos reservados