0Pricing
Python Academy · Leçon

Modèles et migrations

Définir et migrer la base de données

Modèles et migrations est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Les modèles Django

Un modèle Django est une classe Python qui définit la structure d’une table de base de données. Chaque attribut est un champ. Les modèles se trouvent dans le models.py d’une application.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
print('Post model defined')

Types de champs

Django fournit de nombreux types de champs qui correspondent aux types de colonnes.

  • CharField pour les textes courts (nécessite max_length)
  • TextField pour les textes longs
  • IntegerField, BooleanField, DateTimeField
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    views = models.IntegerField(default=0)
print('Fields map to columns')

La clé primaire implicite

Django ajoute automatiquement à chaque modèle une clé primaire id à incrémentation automatique ; vous avez donc rarement besoin d’en déclarer une vous-même.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    # 'id' is added automatically
print('id field is automatic')

Options des champs

Les champs acceptent des options telles que default, null, blank et unique pour contrôler leur comportement et leur validation.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    published = models.BooleanField(default=False)
    subtitle = models.CharField(max_length=200, blank=True)
print('Options refine each field')

Dates

DateTimeField(auto_now_add=True) enregistre la date et l’heure auxquelles une ligne est créée pour la première fois. auto_now=True la met à jour à chaque enregistrement.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
print('Timestamps set automatically')

Relations

Reliez les modèles avec ForeignKey pour établir une relation un-à-plusieurs. on_delete indique à Django quoi faire lorsque la ligne référencée est supprimée.

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Post(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
print('ForeignKey links Post to Author')

Que sont les migrations ?

Les migrations sont le mécanisme utilisé par Django pour transformer les modifications des modèles en modifications du schéma de la base de données. Elles jouent le rôle d’un contrôle de version pour votre base de données.

# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')

makemigrations

python manage.py makemigrations examine vos modèles et génère des fichiers de migration décrivant les modifications.

# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')

migrate

python manage.py migrate applique les migrations en attente à la base de données, en créant ou en modifiant les tables.

# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')

Le processus de migration

La séquence est la suivante : modifiez models.py, exécutez makemigrations, puis exécutez migrate. Répétez cette procédure chaque fois que vos modèles changent.

# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')

Interroger les modèles

Chaque modèle reçoit un gestionnaire appelé objects pour effectuer des requêtes : Post.objects.all(), .filter(), .get() et .create().

# Post.objects.all()
# Post.objects.filter(published=True)
# Post.objects.get(id=1)
# Post.objects.create(title='Hello')
print('objects is the query manager')

Vérification rapide

Vérifiez vos connaissances sur les migrations.

Récapitulatif

Vous avez défini des modèles et effectué leur migration.

  • Les modèles sont des classes présentes dans models.py, avec des champs typés
  • Django ajoute automatiquement une clé primaire id
  • ForeignKey relie les modèles ; on_delete définit le comportement en cascade
  • makemigrations, puis migrate, synchronisent la base de données
  • Model.objects permet d’interroger les données

Questions Fréquemment Posées

La leçon « Modèles et migrations » est-elle gratuite ?

Oui — le texte complet de « Modèles et migrations » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Modèles et migrations » ?

Définir et migrer la base de données Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Modèles et migrations » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Projets et applications
  2. Modèles et migrations
  3. Vues et URL
  4. L’administration Django
← Retour à Python Academy