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
/logini/logoutes 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.pyExemple de __init__.py per a un Blueprint
# auth/__init__.py
from flask import Blueprint
auth = Blueprint('auth', __name__)
from . import routesExemple 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
profiledins del teu projecte. - Dins del directori
profile, crea els fitxers__init__.pyiroutes.py. - Defineix el Blueprint en
__init__.py. - Defineix les rutes
view_profileiedit_profileenroutes.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
