En aquest tema, aprendrem com desplegar una aplicació Flask a Heroku, una plataforma de núvol que permet desplegar, gestionar i escalar aplicacions fàcilment. Heroku és una opció popular per a desenvolupadors gràcies a la seva simplicitat i integració amb Git.

  1. Prerequisits

Abans de començar, assegura't de tenir els següents prerequisits:

  • Un compte a Heroku (pots registrar-te gratuïtament a Heroku).
  • Git instal·lat al teu sistema.
  • Heroku CLI instal·lat. Pots descarregar-lo des de Heroku CLI.

  1. Preparació de l'Aplicació Flask

2.1. Crear un fitxer Procfile

Heroku utilitza un fitxer anomenat Procfile per saber com executar la teva aplicació. Crea un fitxer anomenat Procfile a l'arrel del teu projecte amb el següent contingut:

web: gunicorn app:app

En aquest cas, app és el nom del fitxer Python que conté la teva aplicació Flask (app.py), i app és el nom de la instància de Flask dins d'aquest fitxer.

2.2. Afegir gunicorn a les dependències

Heroku utilitza gunicorn com a servidor WSGI per a les aplicacions Python. Assegura't d'afegir gunicorn al teu fitxer requirements.txt:

Flask==2.0.1
gunicorn==20.1.0

2.3. Configurar fitxer runtime.txt

Heroku permet especificar la versió de Python que vols utilitzar. Crea un fitxer anomenat runtime.txt a l'arrel del teu projecte amb el següent contingut:

python-3.9.6

  1. Desplegament a Heroku

3.1. Crear una nova aplicació a Heroku

Obre una terminal i executa el següent comandament per crear una nova aplicació a Heroku:

heroku create nom-de-la-teva-aplicacio

3.2. Desplegar l'aplicació

Segueix aquests passos per desplegar la teva aplicació:

  1. Inicialitzar un repositori Git (si no ho has fet ja):

    git init
    
  2. Afegir els fitxers al repositori:

    git add .
    
  3. Fer un commit dels canvis:

    git commit -m "Primera versió de l'aplicació Flask"
    
  4. Afegir Heroku com a remot:

    heroku git:remote -a nom-de-la-teva-aplicacio
    
  5. Desplegar l'aplicació a Heroku:

    git push heroku master
    

3.3. Configurar variables d'entorn

Si la teva aplicació Flask utilitza variables d'entorn, pots configurar-les a Heroku amb el següent comandament:

heroku config:set NOM_VARIABLE=valor

3.4. Accedir a l'aplicació

Després de desplegar l'aplicació, pots accedir-hi a través de l'URL proporcionada per Heroku. Executa el següent comandament per obrir l'aplicació al teu navegador:

heroku open

  1. Exercici Pràctic

Objectiu

Desplegar una aplicació Flask simple a Heroku.

Passos

  1. Crea una aplicació Flask bàsica (app.py):

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def home():
        return "Hola, Heroku!"
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  2. Crea els fitxers necessaris (Procfile, requirements.txt, runtime.txt) com s'ha descrit anteriorment.

  3. Desplega l'aplicació seguint els passos de la secció 3.

Solució

  1. Estructura del projecte:

    my-flask-app/
    ├── app.py
    ├── Procfile
    ├── requirements.txt
    └── runtime.txt
    
  2. Contingut dels fitxers:

    • app.py:

      from flask import Flask
      
      app = Flask(__name__)
      
      @app.route('/')
      def home():
          return "Hola, Heroku!"
      
      if __name__ == '__main__':
          app.run(debug=True)
      
    • Procfile:

      web: gunicorn app:app
      
    • requirements.txt:

      Flask==2.0.1
      gunicorn==20.1.0
      
    • runtime.txt:

      python-3.9.6
      
  3. Desplegament:

    git init
    git add .
    git commit -m "Primera versió de l'aplicació Flask"
    heroku create nom-de-la-teva-aplicacio
    heroku git:remote -a nom-de-la-teva-aplicacio
    git push heroku master
    heroku open
    

  1. Conclusió

En aquesta secció, hem après com desplegar una aplicació Flask a Heroku. Hem cobert la preparació de l'aplicació, la creació d'una nova aplicació a Heroku, el desplegament i la configuració de variables d'entorn. Ara estàs preparat per desplegar les teves aplicacions Flask a Heroku i fer-les accessibles al món.

Curs de Desenvolupament Web amb Flask

Mòdul 1: Introducció a Flask

Mòdul 2: Conceptes Bàsics de Flask

Mòdul 3: Formularis i Entrada d'Usuari

Mòdul 4: Integració de Bases de Dades

Mòdul 5: Autenticació d'Usuaris

Mòdul 6: Conceptes Avançats de Flask

Mòdul 7: APIs RESTful amb Flask

Mòdul 8: Desplegament i Producció

Mòdul 9: Proves i Millors Pràctiques

Mòdul 10: Extensions i Ecosistema de Flask

© Copyright 2024. Tots els drets reservats