Flask és un microframework per al desenvolupament web en Python. És lleuger i flexible, i permet als desenvolupadors crear aplicacions web ràpidament. En aquesta secció, aprendrem els conceptes bàsics de Flask, com configurar un projecte i crear una aplicació web senzilla.
- Instal·lació de Flask
Abans de començar a treballar amb Flask, necessitem instal·lar-lo. Utilitzarem pip
, el gestor de paquets de Python, per fer-ho.
- Creació d'una Aplicació Bàsica en Flask
Un cop instal·lat Flask, podem crear la nostra primera aplicació. A continuació es mostra un exemple senzill d'una aplicació Flask:
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hola, món!" if __name__ == '__main__': app.run(debug=True)
Explicació del Codi
- Importació de Flask: Importem la classe
Flask
del paquetflask
. - Creació de l'Aplicació: Creem una instància de l'aplicació Flask.
- Definició de Rutes: Utilitzem el decorador
@app.route('/')
per definir una ruta. En aquest cas, la ruta és la pàgina principal ('/'). - Funció de Vista: Definim una funció
home
que retorna un missatge "Hola, món!" quan es visita la pàgina principal. - Execució de l'Aplicació: Utilitzem
app.run(debug=True)
per executar l'aplicació en mode de depuració.
- Rutes i Mètodes HTTP
Flask permet definir rutes per a diferents URL i mètodes HTTP (GET, POST, etc.). A continuació es mostra com definir rutes amb diferents mètodes HTTP:
from flask import Flask, request app = Flask(__name__) @app.route('/get', methods=['GET']) def get_example(): return "Aquesta és una sol·licitud GET" @app.route('/post', methods=['POST']) def post_example(): data = request.form['data'] return f"Aquesta és una sol·licitud POST amb dades: {data}" if __name__ == '__main__': app.run(debug=True)
Explicació del Codi
- Importació de
request
: Importem l'objecterequest
de Flask per accedir a les dades de la sol·licitud. - Definició de Rutes amb Mètodes HTTP: Utilitzem el paràmetre
methods
en el decorador@app.route
per especificar els mètodes HTTP permesos per a la ruta. - Accés a les Dades de la Sol·licitud: Utilitzem
request.form
per accedir a les dades enviades en una sol·licitud POST.
- Plantilles amb Jinja2
Flask utilitza Jinja2 com a motor de plantilles per generar HTML dinàmic. A continuació es mostra com utilitzar plantilles en Flask:
Creació d'una Plantilla HTML
Creem un fitxer templates/index.html
amb el següent contingut:
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <title>Exemple de Flask</title> </head> <body> <h1>{{ missatge }}</h1> </body> </html>
Utilització de la Plantilla en Flask
Modifiquem el nostre codi Flask per utilitzar la plantilla:
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def home(): missatge = "Hola, món des de Flask!" return render_template('index.html', missatge=missatge) if __name__ == '__main__': app.run(debug=True)
Explicació del Codi
- Importació de
render_template
: Importem la funciórender_template
de Flask per renderitzar plantilles. - Renderització de la Plantilla: Utilitzem
render_template('index.html', missatge=missatge)
per renderitzar la plantillaindex.html
i passar-hi la variablemissatge
.
- Exercicis Pràctics
Exercici 1: Creació d'una Ruta Addicional
Crea una ruta /about
que retorni un missatge "Aquesta és la pàgina About".
Solució
Exercici 2: Utilització de Plantilles
Crea una plantilla about.html
que mostri un missatge passat des de la funció de vista.
Solució
- Creació de la Plantilla
about.html
:
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <title>About</title> </head> <body> <h1>{{ missatge }}</h1> </body> </html>
- Modificació del Codi Flask:
@app.route('/about') def about(): missatge = "Aquesta és la pàgina About" return render_template('about.html', missatge=missatge)
Conclusió
En aquesta secció, hem après els conceptes bàsics de Flask, incloent-hi la instal·lació, la creació d'una aplicació bàsica, la definició de rutes i mètodes HTTP, i l'ús de plantilles amb Jinja2. Aquests fonaments ens preparen per a construir aplicacions web més complexes amb Flask. En la propera secció, explorarem com construir APIs REST amb Flask.
Curs de Programació en Python
Mòdul 1: Introducció a Python
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn