Introducció
Flask és un microframework per al desenvolupament web en Python. És conegut per la seva simplicitat i flexibilitat, permetent als desenvolupadors crear aplicacions web ràpidament i amb una corba d'aprenentatge suau. A diferència d'altres frameworks més pesats com Django, Flask no ve amb moltes funcionalitats predefinides, la qual cosa permet als desenvolupadors afegir només les extensions que necessiten.
Característiques Clau de Flask
- Microframework: Flask és lleuger i minimalista, proporcionant només les eines essencials per començar.
- Flexibilitat: Permet als desenvolupadors estructurar les seves aplicacions com vulguin.
- Extensible: Hi ha moltes extensions disponibles per afegir funcionalitats com bases de dades, autenticació, etc.
- Basat en WSGI: Utilitza el protocol WSGI (Web Server Gateway Interface) per a la comunicació entre el servidor web i l'aplicació.
- Jinja2: Utilitza el motor de plantilles Jinja2 per a la renderització de plantilles HTML.
Per què Utilitzar Flask?
- Simplicitat: Ideal per a projectes petits i mitjans on no es necessiten totes les funcionalitats d'un framework més gran.
- Flexibilitat: Permet una gran llibertat en l'arquitectura de l'aplicació.
- Comunitat i Extensions: Té una comunitat activa i una gran quantitat d'extensions disponibles.
- Documentació: Proporciona una documentació clara i detallada.
Comparació amb Altres Frameworks
Característica | Flask | Django |
---|---|---|
Tipus | Microframework | Framework complet |
Configuració | Minimalista | Configuració per convenció |
Extensibilitat | Alta | Moderada |
Funcionalitats | Bàsiques | Completes |
Corba d'aprenentatge | Suau | Moderada |
Exemples Pràctics
Hola, Món amb Flask
A continuació, es mostra un exemple senzill d'una aplicació "Hola, Món" amb Flask:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hola, Món!' if __name__ == '__main__': app.run(debug=True)
Explicació del Codi:
-
Importació de Flask:
from flask import Flask
- Importem la classe
Flask
del paquetflask
.
- Importem la classe
-
Creació de l'Aplicació:
app = Flask(__name__)
- Creem una instància de l'aplicació Flask.
-
Definició d'una Ruta:
@app.route('/')
- Utilitzem el decorador
@app.route('/')
per definir la ruta principal de l'aplicació.
- Utilitzem el decorador
-
Funció de Vista:
def hello_world():
- Definim una funció de vista que retorna el text 'Hola, Món!'.
-
Execució de l'Aplicació:
if __name__ == '__main__':
- Executem l'aplicació en mode de depuració (
debug=True
) si el fitxer es crida directament.
- Executem l'aplicació en mode de depuració (
Exercici Pràctic
Exercici 1: Creant la Teva Primera Aplicació Flask
Objectiu: Crear una aplicació Flask que mostri un missatge personalitzat a la pàgina principal.
Instruccions:
- Instal·la Flask si encara no ho has fet:
pip install Flask
- Crea un fitxer anomenat
app.py
. - Escriu el codi següent en
app.py
:from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Benvingut a la meva primera aplicació Flask!' if __name__ == '__main__': app.run(debug=True)
- Executa l'aplicació:
python app.py
- Obre el navegador i visita
http://127.0.0.1:5000/
per veure el missatge.
Solució: El codi proporcionat anteriorment és la solució a l'exercici. Si has seguit les instruccions correctament, hauràs creat la teva primera aplicació Flask que mostra el missatge "Benvingut a la meva primera aplicació Flask!".
Conclusió
En aquesta secció, hem après què és Flask, les seves característiques clau, per què és útil i com es compara amb altres frameworks com Django. També hem creat una senzilla aplicació "Hola, Món" per familiaritzar-nos amb la sintaxi bàsica de Flask. Amb aquests coneixements, estem preparats per configurar el nostre entorn de desenvolupament i començar a construir aplicacions més complexes.
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