OUJOOD.COM
Après des heures de théorie, il est temps de mettre les mains dans le cambouis. Créer un blog est l'exercice parfait : cela demande de gérer des bases de données, des relations entre objets, des formulaires et une interface d'administration. On ne va pas réinventer la roue, mais construire un moteur solide sur lequel vous pourrez greffer vos propres idées plus tard.
Étape 1 : Le modèle de données
Un blog, c'est avant tout des articles (Posts). Chaque article doit avoir un titre, un contenu, une date de publication et un auteur. Je vous suggère d'ajouter un champ slug pour avoir des URLs propres et lisibles par les moteurs de recherche, plutôt que de simples numéros d'ID.
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
titre = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
auteur = models.ForeignKey(User, on_delete=models.CASCADE)
contenu = models.TextField()
date_pub = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.titre
Étape 2 : Les vues et le routage
Nous avons besoin de deux vues principales : une pour lister tous les articles (la page d'accueil du blog) et une pour lire un article précis. Pour gagner du temps, nous allons utiliser les ListView et DetailView de Django. C'est ici que vous verrez la puissance des vues basées sur les classes.
from django.views.generic import ListView, DetailView
from .models import Post
class BlogListView(ListView):
model = Post
template_name = 'blog/home.html'
context_object_name = 'articles'
class BlogDetailView(DetailView):
model = Post
template_name = 'blog/post_detail.html'
Étape 3 : L'interface d'administration
L'un des plaisirs de Django, c'est de ne pas avoir à coder l'interface de rédaction. En enregistrant votre modèle dans admin.py, vous obtenez immédiatement un outil pour écrire, modifier et supprimer vos articles. Je vous conseille d'utiliser l'option prepopulated_fields pour que le slug se remplisse tout seul pendant que vous tapez le titre.
Étape 4 : Templates et héritage
Pour que votre blog ait de l'allure, utilisez un template de base (base.html) avec une barre de navigation et un pied de page. Vos pages d'accueil et de lecture viendront ensuite "remplir" le bloc de contenu central. C'est la méthode la plus efficace pour garder un design cohérent sur tout le site.
Ce projet de blog est une base. Vous pouvez y ajouter des commentaires, des catégories ou même un système de recherche. Une fois que vous maîtrisez ce flux de données, vous êtes prêt pour l'ultime défi : transformer ces données en un service web moderne avec notre Projet Django : API REST.
Par carabde | Mis à jour le 09/05/2026