logo oujood
🔍

La balise include pour les templates Django

La balise include charge un template et l'insère dans le template courant. C'est la solution idéale pour factoriser les blocs répétés : en-têtes, pieds de page, menus. Le nom du template peut être une chaîne de caractères ou une variable.

OUJOOD.COM

La balise include

Quand plusieurs pages partagent un même bloc HTML — un pied de page, un menu, une bannière — il est inutile de le réécrire à chaque fois. La balise include permet de le centraliser dans un fichier séparé et de l'injecter où on en a besoin.

Syntaxe :

{% include "nom_template.html" %}

Le chemin est relatif au répertoire racine des templates. Les chemins relatifs avec ./ ou ../ sont aussi acceptés, comme pour la balise extends.

Exemple — inclure un pied de page depuis un fichier dédié pied_de_page.html :

Fichier template.html   📋 Copier le code

<!DOCTYPE html>
<html>
<body>

<h1>Bonjour</h1>

<p>Cette page contient un pied de page dans un template.</p>

<p>Jette un coup d'oeil aux deux modèles pour voir à quoi
 ils ressemblent, et à views.py pour voir la référence au template chargeur.</p>

{% include 'pied_de_page.html' %} 

</body>
</html>   

Fichier pied_de_page.html   📋 Copier le code

<p>Vous avez atteint le bas de cette page, 
merci pour votre participation.</p> 

Fichier views.py   📋 Copier le code

from django.http import HttpResponse
from django.template import loader

def appliquer(request):
  template = loader.get_template('template.html')
  return HttpResponse(template.render())
Au rendu, Django remplace {% include 'pied_de_page.html' %} par le contenu du fichier — comme si ce contenu avait été écrit directement à cet endroit.

Passer des variables au template inclus

Un template inclus peut recevoir des données au moment de son appel, grâce au mot-clé with. On liste les variables à transmettre sous forme de paires nom="valeur", et on y accède ensuite dans le fichier inclus avec la syntaxe habituelle {{ variable }}.

Exemple — inclure un menu principal en lui passant deux variables, menu et sponsor :

Fichier template.html   📋 Copier le code

<!DOCTYPE html>
<html>
<body>

<h1>Bonjour</h1>

{% include "menu_principal.html" with menu="Tutoriels" sponsor="oujood.com" %}

<p>Voici mon site web</p>
<p>Consultez la page menu_principal.html pour voir 
son contenu HTML.</p>
<hr>
{% include 'pied_de_page.html' %} 
</body>
</html>  

Fichier menu_principal.html   📋 Copier le code

<div>Accueil | {{ menu }} | News | A propos | {{ sponsor }}</div>

Fichier views.py   📋 Copier le code

from django.http import HttpResponse
from django.template import loader

def appliquer(request):
  template = loader.get_template('template.html')
  return HttpResponse(template.render())
Django affichera dans le menu : Accueil | Tutoriels | News | A propos | oujood.com. Les variables passées via with ne sont disponibles que dans le template inclus — elles ne remontent pas au template parent.

Par carabde | Mis à jour le 01 juin 2026