Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

L'une des fonctionnalités les plus puissantes de Django est sa capacité à réutiliser le code de manière dynamique. L'héritage de modèle permet le partage de code entre les modèles parent et enfant. Cela réduit considérablement la duplication des efforts.

Django a son langage de modèle conçu pour se fondre avec HTML. Vous trouverez facile de travailler avec les modèles de Django si vous avez déjà travaillé avec du code HTML. D'autres langages de modèle basés sur du texte comme Smarty ou Jinja2 ont une syntaxe similaire.

Apprenons-en plus sur l'héritage des templates en construisant un projet Django.

Qu'est-ce qu'un modèle Django ?

Dans Django, un modèle est un fichier texte qui peut générer n'importe quel format basé sur du texte, tel que HTML, XML ou CSV.

Balises de modèles Django contrôler la logique entourant les variables et les valeurs dans le modèle. Les balises aident à séparer la logique du programme de la présentation du modèle. Ils aident également à garder vos modèles propres et organisés.

Django a de nombreuses balises intégrées, qui ressemblent à {% étiqueter %}. Les balises sont utiles à bien des égards. Ils peuvent créer du texte dans la sortie, effectuer des boucles et charger des informations dans le modèle.

Vous utiliserez des balises dans ce projet pour démontrer l'héritage de modèle.

Créer un projet Django

Pour commencer, créer un projet Django. Créer une application nommée modèles. Une fois cela fait, vous êtes prêt à créer une fonction d'affichage pour l'application, un chemin d'URL et des modèles pour démontrer l'héritage des modèles.

Créer une fonction d'affichage

Tout d'abord, créez un voir fonction qui rend les modèles. Dans ce cas, vous rendrez le index.html modèle. Importez le rendre méthode à partir des raccourcis Django. Créez ensuite une fonction d'affichage nommée index qui renvoie et restitue le modèle d'index.

depuis django.raccourcis importer rendre
# Créez vos vues ici.
définitivementindice(demande):
retour rendu (requête,'index.html')

Créer un chemin d'URL

Ensuite, créez un Chemin d'URL pour que la fonction d'affichage affiche les modèles. Importez le chemin fonction de django.urls et la voir fonction de vues.py déposer. Puis importez paramètres et statique pour rendre les images et les médias que vous pourriez avoir dans les modèles.

depuis django.urls importer chemin
depuis. importer vues
depuis django.conf importer paramètres
depuis django.conf.urls.statique importerstatique
modèles d'url=[
chemin('',views.index, nom='indice'),
]
siparamètres.DÉBOGUER:
modèles d'url+=statique(paramètres. MEDIA_URL, document_root=paramètres. MEDIA_ROOT)

Créer des modèles

Maintenant que vous avez le voir et URL chemin, créez les modèles. Pour démontrer l'héritage du modèle, créez un base.html en tant que modèle parent. Le base.html le fichier contiendra des éléments généraux que vous souhaitez partager avec index.html,le modèle enfant.

{% load bootstrap5 %}
{% charger statique %}
<!DOCTYPE html>
<html lang="fr">
<diriger>
<meta charset="UTF-8">
<meta http-equiv="Compatible X-UA" contenu="IE=bord">
<méta nom ="fenêtre" contenu="width=device-width, initial-scale=1.0">
<!-- titres -->
{% si titre %}
<titre> Modèles hérités {{title}}</title>
{% autre %}
<titre> Modèles hérités </title>
{% fin si %}
{% styles de bloc %}
{% bootstrap_css %}
<lien rel="feuille de style" href="{% statique 'css/style.css' %}">
{% endblock %}
</head>
<corps>
{% inclure 'barre de navigation.html' %}
{% block content %} {% endblock %}
<!-- Liens d'amorçage -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" intégrité="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonyme"></script>
</body>
</html>

Tout d'abord, chargez les dépendances Bootstrap et statiques sur le base.html modèle. Tu peux utiliser le framework Bootstrap avec votre projet Django pour styliser les pages HTML. La dépendance statique chargée en haut chargera les actifs inclus dans le dossier statique.

Les modèles Django vous permettent de transmettre des bits de logique responsables de l'affichage du contenu. Les balises de modèle sont constituées de texte entouré de "{%" et "%}" personnages. Le sinon L'instruction vérifie les conditions dans la fonction d'affichage. Si la condition est vraie, le contenu du premier bloc est affiché; si false, il affichera le contenu dans le second.

Le base.html fichier affichera également le contenu de barre de navigation.html là où vous placez les balises de modèle. Cela signifie que chaque fois que vous prolongez la base.html, barre de navigation.html est également hérité. Tout modèle étendant la base.html héritera de tout élément avec un {% inclure %} étiqueter.

Tout texte entouré de {{}} est une variable de modèle. Les variables de modèle sont des données dynamiques fournies par les fonctions d'affichage. Django utilise également des balises de bloc qui utilisent une balise ouverte, comme {% bloque le contenu %}, et une balise fermante, comme {% endblock %}.

Les balises de bloc permettent aux modèles enfants de remplacer le contenu des modèles parents. Dans ce cas, le index.html peut remplacer son contenu dans la zone délimitée par des balises de bloc. Il n'interférera pas avec l'autre base.html Composants.

Appliquons la logique au index.html

{% s'étend 'base.html' %}
{% bloque le contenu %}
<classe div="centre de texte conteneur" style="Couleur blanche">
<h1>Je suis le modèle d'index</h1>
<p>J'ai hérité de Bootstrap et de la barre de navigation de base.html</p>
</div>
{% endblock %}

Dans le index.html modèle, utilisez le {% étendre %} balise pour étendre les composants du base.html. À l'intérieur des balises de bloc {% bloque le contenu %}, écrivez tout votre code.

Dans le index.html template, vous avez un H1 et un élément de paragraphe. Vous pouvez utiliser les balises de modèle à l'intérieur des divs pour appeler des variables à partir du voir fonction.

Tester l'héritage du modèle dans le navigateur

Vous pouvez maintenant exécuter le serveur. Une fois que vous avez fait cela, vérifiez dans le navigateur pour voir si le index.html fichier a hérité des éléments de base.html. Cela inclut les liens Bootstrap et le barre de navigation.html modèle.

Le index.html Le fichier doit hériter des styles de barre de navigation et Bootstrap du modèle de base. Si tel est le cas, vous avez correctement utilisé l'héritage de modèle. Sans cela, vous auriez dû ajouter la barre de navigation et les liens Bootstrap là où vous en aviez besoin.

De même, toute modification que vous apportez au base.html se reflétera sur tous les modèles auxquels il s'étend. Ce principe est important dans la gestion des erreurs. Vous pouvez facilement identifier les modèles avec des bogues.

L'héritage de modèle est l'une des nombreuses façons dont Django implémente le principe Ne vous répétez pas (DRY). Cela rendra votre développement beaucoup plus facile et plus simple.

Pourquoi devriez-vous utiliser l'héritage de modèle Django

L'héritage de template de Django est l'une de ses fonctionnalités les plus complexes. Cela peut prendre un certain temps pour le comprendre, mais une fois que vous l'avez compris, cela économise beaucoup d'efforts de développement.

L'héritage de modèle vous permet de partager du code entre les modèles parent et enfant. Cela garantit que vous n'écrivez pas de code répétitif dans vos modèles.

L'héritage de modèle est important dans les grands projets Django. Dans de tels cas, il existe de nombreuses applications et de nombreux modèles à concevoir. Les modèles parents vous donnent beaucoup de contrôle sur les autres composants de l'application.

En apprenant le système de modèles Django, vous pouvez profiter de l'écriture de code propre et puissant.