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.
- 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.
- 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:
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
:
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:
- 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:
3.2. Desplegar l'aplicació
Segueix aquests passos per desplegar la teva aplicació:
-
Inicialitzar un repositori Git (si no ho has fet ja):
git init
-
Afegir els fitxers al repositori:
git add .
-
Fer un commit dels canvis:
git commit -m "Primera versió de l'aplicació Flask"
-
Afegir Heroku com a remot:
heroku git:remote -a nom-de-la-teva-aplicacio
-
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:
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:
- Exercici Pràctic
Objectiu
Desplegar una aplicació Flask simple a Heroku.
Passos
-
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)
-
Crea els fitxers necessaris (
Procfile
,requirements.txt
,runtime.txt
) com s'ha descrit anteriorment. -
Desplega l'aplicació seguint els passos de la secció 3.
Solució
-
Estructura del projecte:
my-flask-app/ ├── app.py ├── Procfile ├── requirements.txt └── runtime.txt
-
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
-
-
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
- 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
- Què és Flask?
- Configuració del Teu Entorn de Desenvolupament
- Creant la Teva Primera Aplicació Flask
- Entenent l'Estructura d'una Aplicació Flask
Mòdul 2: Conceptes Bàsics de Flask
- Enrutament i Mapeig d'URL
- Gestió de Mètodes HTTP
- Renderització de Plantilles amb Jinja2
- Treballant amb Fitxers Estàtics
Mòdul 3: Formularis i Entrada d'Usuari
Mòdul 4: Integració de Bases de Dades
- Introducció a Flask-SQLAlchemy
- Definició de Models
- Realització d'Operacions CRUD
- Migracions de Bases de Dades amb Flask-Migrate
Mòdul 5: Autenticació d'Usuaris
- Registre d'Usuaris
- Inici i Tancament de Sessió d'Usuaris
- Hashing de Contrasenyes
- Gestió de Sessions d'Usuaris
Mòdul 6: Conceptes Avançats de Flask
- Blueprints per a Aplicacions Grans
- Gestió d'Errors
- Pàgines d'Error Personalitzades
- Registre i Depuració
Mòdul 7: APIs RESTful amb Flask
- Introducció a les APIs RESTful
- Creació de Punts Finals RESTful
- Gestió de Dades JSON
- Autenticació per a APIs
Mòdul 8: Desplegament i Producció
- Configuració de Flask per a Producció
- Desplegament a Heroku
- Desplegament a AWS
- Monitorització i Optimització del Rendiment
Mòdul 9: Proves i Millors Pràctiques
- Proves Unitàries amb Flask
- Proves d'Integració
- Cobertura de Proves
- Millors Pràctiques per al Desenvolupament amb Flask