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
Flaskdel 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ó
homeque 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'objecterequestde Flask per accedir a les dades de la sol·licitud. - Definició de Rutes amb Mètodes HTTP: Utilitzem el paràmetre
methodsen el decorador@app.routeper especificar els mètodes HTTP permesos per a la ruta. - Accés a les Dades de la Sol·licitud: Utilitzem
request.formper 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_templatede Flask per renderitzar plantilles. - Renderització de la Plantilla: Utilitzem
render_template('index.html', missatge=missatge)per renderitzar la plantillaindex.htmli 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
