Què és Flask-SQLAlchemy?

Flask-SQLAlchemy és una extensió per a Flask que simplifica la integració de SQLAlchemy, un ORM (Object-Relational Mapping) per a Python, amb les aplicacions web desenvolupades amb Flask. SQLAlchemy proporciona una interfície d'alt nivell per interactuar amb bases de dades relacionals, permetent als desenvolupadors treballar amb objectes Python en lloc de sentències SQL directes.

Avantatges de Flask-SQLAlchemy:

  • Simplificació de la configuració: Facilita la configuració de SQLAlchemy amb Flask.
  • Integració fluida: Proporciona una integració perfecta amb les funcionalitats de Flask.
  • Abstracció de la base de dades: Permet treballar amb objectes Python en lloc de sentències SQL.
  • Suport per a múltiples bases de dades: Compatible amb diverses bases de dades com SQLite, MySQL, PostgreSQL, etc.

Configuració de Flask-SQLAlchemy

Instal·lació

Per començar a utilitzar Flask-SQLAlchemy, primer cal instal·lar l'extensió. Pots fer-ho utilitzant pip:

pip install flask-sqlalchemy

Configuració Bàsica

Després d'instal·lar Flask-SQLAlchemy, cal configurar-lo dins de la teva aplicació Flask. A continuació es mostra un exemple de com fer-ho:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# Configuració de la base de dades
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# Inicialització de l'extensió
db = SQLAlchemy(app)

# Definició d'un model
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'

if __name__ == '__main__':
    app.run(debug=True)

Explicació del Codi

  1. Importacions: Importem les classes necessàries de Flask i Flask-SQLAlchemy.
  2. Configuració de l'aplicació: Creem una instància de l'aplicació Flask i configurem la URI de la base de dades. En aquest cas, utilitzem una base de dades SQLite anomenada mydatabase.db.
  3. Inicialització de SQLAlchemy: Inicialitzem l'extensió SQLAlchemy amb la nostra aplicació Flask.
  4. Definició d'un model: Definim un model User amb tres columnes: id, username i email. Aquest model representa una taula a la base de dades.
  5. Execució de l'aplicació: Executem l'aplicació Flask en mode de depuració.

Creació de la Base de Dades

Després de definir els models, cal crear la base de dades i les taules corresponents. Això es pot fer utilitzant el mètode create_all() de l'objecte db.

with app.app_context():
    db.create_all()

Aquest codi crea totes les taules definides pels models dins del context de l'aplicació.

Exercici Pràctic

Objectiu

Crear una aplicació Flask que utilitzi Flask-SQLAlchemy per gestionar una base de dades d'usuaris.

Passos

  1. Instal·la Flask i Flask-SQLAlchemy:

    pip install flask flask-sqlalchemy
    
  2. Crea un fitxer app.py i afegeix el següent codi:

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    db = SQLAlchemy(app)
    
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        username = db.Column(db.String(80), unique=True, nullable=False)
        email = db.Column(db.String(120), unique=True, nullable=False)
    
        def __repr__(self):
            return f'<User {self.username}>'
    
    @app.route('/')
    def index():
        return "Hello, Flask-SQLAlchemy!"
    
    if __name__ == '__main__':
        with app.app_context():
            db.create_all()
        app.run(debug=True)
    
  3. Executa l'aplicació:

    python app.py
    
  4. Verifica que la base de dades users.db s'ha creat al directori del teu projecte.

Solució

El codi anterior crea una aplicació Flask que utilitza Flask-SQLAlchemy per gestionar una base de dades SQLite anomenada users.db. La base de dades conté una taula User amb les columnes id, username i email.

Conclusió

En aquesta secció, hem après què és Flask-SQLAlchemy, com instal·lar-lo i configurar-lo, i com definir models per interactuar amb una base de dades. També hem creat una aplicació Flask senzilla que utilitza Flask-SQLAlchemy per gestionar una base de dades d'usuaris. En el proper mòdul, explorarem com definir models més complexos i realitzar operacions CRUD (Crear, Llegir, Actualitzar, Esborrar) amb Flask-SQLAlchemy.

Curs de Desenvolupament Web amb Flask

Mòdul 1: Introducció a Flask

Mòdul 2: Conceptes Bàsics de Flask

Mòdul 3: Formularis i Entrada d'Usuari

Mòdul 4: Integració de Bases de Dades

Mòdul 5: Autenticació d'Usuaris

Mòdul 6: Conceptes Avançats de Flask

Mòdul 7: APIs RESTful amb Flask

Mòdul 8: Desplegament i Producció

Mòdul 9: Proves i Millors Pràctiques

Mòdul 10: Extensions i Ecosistema de Flask

© Copyright 2024. Tots els drets reservats