Pourquoi créer un site web avec Django en 2025 ?

Tu veux créer un site web avec Django ? Ce tutoriel étape par étape va te guider de zéro jusqu'à un site fonctionnel déployé en ligne. Django est le framework Python le plus puissant pour le développement web : Instagram, Pinterest et Mozilla l'utilisent en production.

En 2025, Django reste le choix numéro un pour les développeurs Python qui veulent construire des applications web robustes et sécurisées. Et la bonne nouvelle ? Tu peux créer ton premier site en une seule journée si tu suis ce guide.

Prérequis

  • Python 3.10+ installé sur ton ordinateur
  • Des bases en Python (variables, fonctions, classes)
  • Un éditeur de code (VS Code recommandé)
  • Un terminal / invite de commandes

Étape 1 : Installer Django et créer le projet

On commence par créer un environnement virtuel et installer Django.

# Créer un dossier pour le projet
mkdir mon-site-django
cd mon-site-django

# Créer un environnement virtuel
python -m venv venv

# Activer l'environnement virtuel
# Sur Mac/Linux :
source venv/bin/activate
# Sur Windows :
venv\Scriptsctivate

# Installer Django
pip install django

# Créer le projet Django
django-admin startproject monsite .

# Vérifier que tout fonctionne
python manage.py runserver

Ouvre ton navigateur sur http://127.0.0.1:8000. Tu devrais voir la page de bienvenue Django. Bravo, ton premier site Django tourne !

Étape 2 : Créer ta première application

En Django, un projet contient plusieurs "applications". Créons une app "pages" pour notre site.

# Créer l'application
python manage.py startapp pages

Ajoute l'app dans monsite/settings.py :

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pages',  # Notre nouvelle app
]

Créer une vue

Dans pages/views.py :

from django.shortcuts import render

def accueil(request):
    context = {
        "titre": "Bienvenue sur mon site",
        "services": [
            {"nom": "Développement Web", "description": "Sites et applications sur mesure"},
            {"nom": "Formation Python", "description": "Apprends à coder avec un pro"},
            {"nom": "Consulting", "description": "Conseils techniques pour ton projet"},
        ]
    }
    return render(request, "pages/accueil.html", context)

Créer le template HTML

Crée le fichier pages/templates/pages/accueil.html :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>{{ titre }}</title>
</head>
<body>
    <h1>{{ titre }}</h1>
    <h2>Nos services</h2>
    {% for service in services %}
    <div>
        <h3>{{ service.nom }}</h3>
        <p>{{ service.description }}</p>
    </div>
    {% endfor %}
</body>
</html>

Configurer les URLs

Crée pages/urls.py :

from django.urls import path
from . import views

urlpatterns = [
    path("", views.accueil, name="accueil"),
]

Et dans monsite/urls.py :

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("pages.urls")),
]

Étape 3 : Ajouter un modèle et une base de données

Django utilise un ORM puissant qui te permet de gérer ta base de données sans écrire de SQL.

# pages/models.py
from django.db import models

class Article(models.Model):
    titre = models.CharField(max_length=200)
    slug = models.SlugField(unique=True)
    contenu = models.TextField()
    date_creation = models.DateTimeField(auto_now_add=True)
    publie = models.BooleanField(default=False)

    class Meta:
        ordering = ["-date_creation"]

    def __str__(self):
        return self.titre
# Créer et appliquer les migrations
python manage.py makemigrations
python manage.py migrate

# Créer un superutilisateur pour l'admin
python manage.py createsuperuser

Enregistre le modèle dans l'admin (pages/admin.py) :

from django.contrib import admin
from .models import Article

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ["titre", "date_creation", "publie"]
    prepopulated_fields = {"slug": ("titre",)}

Étape 4 : Ajouter du style avec Tailwind CSS

Pour un site moderne, on utilise Tailwind CSS. C'est ce qu'on utilise chez DJIMIGA TECH pour nos projets clients.

# Installer django-tailwind
pip install django-tailwind

# Ajouter à INSTALLED_APPS
# 'tailwind',
# 'theme',

Tailwind te permet de créer des designs professionnels directement dans le HTML avec des classes utilitaires. Plus besoin d'écrire des fichiers CSS complexes.

Étape 5 : Déployer ton site en production

Ton site fonctionne en local ? Il est temps de le mettre en ligne !

Préparer pour la production

# settings.py - Production
DEBUG = False
ALLOWED_HOSTS = ["tondomaine.com", "www.tondomaine.com"]

# Fichiers statiques
STATIC_ROOT = BASE_DIR / "staticfiles"
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"

# Sécurité
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

Options de déploiement

  • VPS (Elestio, DigitalOcean, OVH) : Contrôle total, plus technique
  • Railway / Render : Déploiement simplifié, gratuit pour commencer
  • PythonAnywhere : Spécialement conçu pour Django, simple
# Fichier requirements.txt
django>=4.2
gunicorn
whitenoise
psycopg2-binary

Étape 6 : Bonnes pratiques Django

  • Utilise les vues génériques : ListView, DetailView pour moins de code
  • Sépare les settings : Un fichier pour le dev, un pour la production
  • Gère les variables d'environnement : Utilise python-decouple ou django-environ
  • Écris des tests : Django a un framework de test intégré
  • Utilise Git : Versionne ton code dès le début

Conclusion

Tu viens de créer un site web complet avec Django ! De l'installation au déploiement, tu as maintenant les bases pour construire n'importe quelle application web. Django est un framework incroyablement puissant, et ce tutoriel n'est que le début.

Si tu veux comparer Django avec d'autres frameworks, consulte notre article Django vs Flask. Et si tu as besoin d'aide pour ton projet, contacte DJIMIGA TECH pour un développement web professionnel ou une formation Django personnalisée.