4.1

L'Abstracció: Què és un ORM?

ORM significa Object-Relational Mapper. És una eina dels frameworks moderns (com Django) que fa de traductor entre el teu llenguatge de programació (Python) i el de la base de dades (SQL).

🛡️

Evita SQL directe

No cal escriure sentències SQL (propenses a errors i a injeccions de seguretat).

🔄

Independència del motor

Desenvolupa amb SQLite en local i puja a PostgreSQL en producció canviant una sola línia de config.

🗃️

CRUD simplificat

Create · Read · Update · Delete, tot amb Python pur.

Nosaltres crearem Models, que són classes en Python que representen una taula a la base de dades:

Python models.py
# Exemple d'un Model en Django
class Llibre(models.Model):
    titol = models.CharField(max_length=100)
    autor = models.CharField(max_length=200)
CCreate
Insertar
RRead
Seleccionar
UUpdate
Actualitzar
DDelete
Esborrar
4.2

L'evolució del projecte: Les Migracions

A mesura que l'aplicació creix, potser t'adones que al model Llibre li falta el camp data_edicio. Afegir columnes a una base de dades en producció és perillosíssim i pot comportar pèrdua d'informació.

💡
Les Migracions són com "commits de Git" per a l'esquema de la base de dades. Et permeten avançar o retrocedir versions de la BD automàticament sense perdre dades.
1

Modifica el Model Python

Afegeix el nou camp data_edicio a la classe Llibre al fitxer models.py.

2

python manage.py makemigrations

Django analitza el codi, detecta els canvis i genera automàticament l'script de migració.

3

python manage.py migrate

Aplica l'script generat a la base de dades real. El canvi és efectiu de manera segura i traçable.

🗂️ Resum Ràpid — Mòdul 4

ORM Traductor Python ↔ SQL. Evita escriure SQL directament.
Model Classe Python = Taula a la BD. Ex: class Llibre(models.Model).
CRUD Create, Read, Update, Delete — les 4 operacions bàsiques.
Independència SQLite en dev → PostgreSQL en producció, sense canviar codi.
makemigrations Genera l'script de canvi de l'esquema automàticament.
migrate Aplica els canvis a la BD de manera segura i traçable.