Els Blueprints són una característica poderosa de Flask que permeten organitzar el codi de la teva aplicació en components més petits i manejables. Això és especialment útil per a aplicacions grans, ja que facilita la modularització i la reutilització del codi.
Què són els Blueprints?
Els Blueprints són com plantilles per a rutes i vistes que es poden registrar en una aplicació Flask. Permeten dividir l'aplicació en mòduls independents, cadascun amb les seves pròpies rutes, vistes, plantilles i fitxers estàtics.
Avantatges dels Blueprints
- Modularització: Faciliten la separació de diferents parts de l'aplicació en mòduls independents.
- Reutilització: Permeten reutilitzar codi en diferents parts de l'aplicació o fins i tot en diferents aplicacions.
- Mantenibilitat: Fan que el codi sigui més fàcil de mantenir i escalar.
Creació d'un Blueprint
Pas 1: Definir el Blueprint
Primer, crea un fitxer Python per al teu Blueprint. Per exemple, crea un fitxer auth.py
per gestionar l'autenticació d'usuaris.
# auth.py from flask import Blueprint auth = Blueprint('auth', __name__) @auth.route('/login') def login(): return "Login Page" @auth.route('/logout') def logout(): return "Logout Page"
Pas 2: Registrar el Blueprint
Després, registra el Blueprint en la teva aplicació principal. Això es fa en el fitxer principal de l'aplicació, normalment app.py
.
# app.py from flask import Flask from auth import auth app = Flask(__name__) app.register_blueprint(auth, url_prefix='/auth') if __name__ == '__main__': app.run(debug=True)
Explicació del Codi
- Definició del Blueprint:
auth = Blueprint('auth', __name__)
crea un nou Blueprint anomenatauth
. - Rutes del Blueprint: Les rutes
/login
i/logout
es defineixen dins del Blueprint. - Registre del Blueprint:
app.register_blueprint(auth, url_prefix='/auth')
registra el Blueprint en l'aplicació principal amb el prefix d'URL/auth
.
Estructura Recomanada per a Aplicacions Grans
Per a aplicacions grans, és recomanable organitzar el codi en directoris separats per a cada Blueprint. Aquí tens un exemple d'estructura de directoris:
/myapp /auth __init__.py routes.py forms.py models.py /main __init__.py routes.py /templates /auth login.html logout.html /main index.html /static /css /js app.py config.py
Exemple de __init__.py
per a un Blueprint
# auth/__init__.py from flask import Blueprint auth = Blueprint('auth', __name__) from . import routes
Exemple de routes.py
per a un Blueprint
# auth/routes.py from . import auth @auth.route('/login') def login(): return "Login Page" @auth.route('/logout') def logout(): return "Logout Page"
Registre de Blueprints en l'Aplicació Principal
# app.py from flask import Flask from auth import auth as auth_blueprint from main import main as main_blueprint app = Flask(__name__) app.register_blueprint(auth_blueprint, url_prefix='/auth') app.register_blueprint(main_blueprint) if __name__ == '__main__': app.run(debug=True)
Exercici Pràctic
Objectiu
Crea un Blueprint per gestionar les operacions de perfil d'usuari, incloent les rutes per veure i editar el perfil.
Passos
- Crea un directori anomenat
profile
dins del teu projecte. - Dins del directori
profile
, crea els fitxers__init__.py
iroutes.py
. - Defineix el Blueprint en
__init__.py
. - Defineix les rutes
view_profile
iedit_profile
enroutes.py
. - Registra el Blueprint en l'aplicació principal (
app.py
).
Solució
profile/__init__.py
profile/routes.py
from . import profile @profile.route('/view') def view_profile(): return "View Profile Page" @profile.route('/edit') def edit_profile(): return "Edit Profile Page"
app.py
from flask import Flask from profile import profile as profile_blueprint app = Flask(__name__) app.register_blueprint(profile_blueprint, url_prefix='/profile') if __name__ == '__main__': app.run(debug=True)
Conclusió
Els Blueprints són una eina essencial per a la modularització i l'organització del codi en aplicacions Flask grans. Permeten dividir l'aplicació en components més petits i manejables, facilitant la mantenibilitat i l'escalabilitat del projecte. Amb els Blueprints, pots crear aplicacions més netes, organitzades i fàcils de gestionar.
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