Créer un Site Web avec Django en 2025 : Tutoriel Étape par Étape
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,DetailViewpour moins de code - Sépare les settings : Un fichier pour le dev, un pour la production
- Gère les variables d'environnement : Utilise
python-decoupleoudjango-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.