Introducció
En aquest tema, aprendrem sobre els models en Django i com interactuen amb les bases de dades. Els models són una part fonamental de qualsevol aplicació Django, ja que defineixen l'estructura de les dades i proporcionen una interfície per interactuar amb la base de dades.
Objectius
- Comprendre què són els models en Django.
- Aprendre a definir models.
- Entendre com es mapegen els models a les taules de la base de dades.
- Aprendre a realitzar operacions bàsiques amb models.
Què és un Model?
Un model en Django és una classe que representa una taula en la base de dades. Cada atribut de la classe correspon a una columna de la taula. Django proporciona una API per interactuar amb la base de dades de manera senzilla i eficient.
Definició de Models
Exemple de Model
from django.db import models class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() published_date = models.DateTimeField(auto_now_add=True) author = models.CharField(max_length=50) def __str__(self): return self.title
Explicació del Codi
title
: Un camp de text amb una longitud màxima de 100 caràcters.content
: Un camp de text llarg.published_date
: Un camp de data i hora que s'estableix automàticament quan es crea l'article.author
: Un camp de text amb una longitud màxima de 50 caràcters.__str__
: Un mètode que retorna una representació en cadena de l'objecte, útil per a la interfície d'administració i altres llocs on es mostren objectes.
Migracions
Les migracions són una manera de propagar els canvis que fem als models a la base de dades. Django proporciona eines per crear i aplicar migracions de manera senzilla.
Creació de Migracions
Després de definir o modificar models, hem de crear una migració:
Aplicació de Migracions
Per aplicar les migracions i actualitzar la base de dades:
Operacions Bàsiques amb Models
Creació d'Objectes
article = Article(title="Primer Article", content="Aquest és el contingut del primer article.", author="Joan") article.save()
Lectura d'Objectes
Actualització d'Objectes
Eliminació d'Objectes
Exercicis Pràctics
Exercici 1: Crear un Model de Comentari
Defineix un model Comment
amb els següents camps:
article
: Una clau forana a l'article.author
: Un camp de text amb una longitud màxima de 50 caràcters.content
: Un camp de text llarg.published_date
: Un camp de data i hora que s'estableix automàticament quan es crea el comentari.
Solució
from django.db import models class Comment(models.Model): article = models.ForeignKey(Article, on_delete=models.CASCADE) author = models.CharField(max_length=50) content = models.TextField() published_date = models.DateTimeField(auto_now_add=True) def __str__(self): return f"Comentari de {self.author} a {self.article.title}"
Exercici 2: Realitzar Operacions amb el Model de Comentari
- Crea un comentari per a un article existent.
- Llegeix tots els comentaris d'un article.
- Actualitza el contingut d'un comentari.
- Elimina un comentari.
Solució
# 1. Crear un comentari article = Article.objects.get(id=1) comment = Comment(article=article, author="Maria", content="Aquest és un comentari.") comment.save() # 2. Llegir tots els comentaris d'un article comments = Comment.objects.filter(article=article) # 3. Actualitzar el contingut d'un comentari comment = Comment.objects.get(id=1) comment.content = "Contingut actualitzat del comentari." comment.save() # 4. Eliminar un comentari comment = Comment.objects.get(id=1) comment.delete()
Conclusió
En aquesta secció, hem après què són els models en Django, com definir-los, i com realitzar operacions bàsiques amb ells. Els models són una part essencial de qualsevol aplicació Django, ja que defineixen l'estructura de les dades i proporcionen una interfície per interactuar amb la base de dades. En el proper mòdul, explorarem la interfície d'administració de Django, que ens permet gestionar fàcilment els nostres models i dades.
Curs de Desenvolupament Web amb Django
Mòdul 1: Introducció a Django
- Què és Django?
- Configuració de l'Entorn de Desenvolupament
- Creació del teu Primer Projecte Django
- Comprensió de l'Estructura del Projecte Django
Mòdul 2: Conceptes Bàsics de Django
- Aplicacions Django i Estructura del Projecte
- Enrutament d'URL i Vistes
- Plantilles i Fitxers Estàtics
- Models i Bases de Dades
- Interfície d'Administració de Django
Mòdul 3: Django Intermedi
Mòdul 4: Django Avançat
- Consultes Avançades amb Django ORM
- Models d'Usuari Personalitzats
- Senyalitzacions de Django
- Proves en Django
- Optimització del Rendiment