--Référence: document django version 1.9
Celles que le créateur doit décider pour lui-même sont écrites en majuscules et les autres en minuscules. Nom de variable ou nom de fichier.
Étant donné que le site officiel a introduit une méthode efficace lors de l'écriture html en utilisant l'extension du modèle, il en est presque une traduction.
Créer un modèle de base qui est à la base de tout. Emballez ici tout ce qui est à la base de votre site Web.
Si vous souhaitez ajouter du contenu ultérieurement, préparez-le en tant que {% block CONTENTSNAME%}. C'est également une bonne méthode de développement pour entrer la valeur par défaut à ce moment. (Il y a un supplément en bas.)
Le document officiel a un exemple concret comme celui-ci.
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css" />
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
{% endblock %}
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
Par exemple, si vous créez un blog, il est plus spécifique que ** base_index.html ** ou ** base_blogindex.html ** ou base.html, mais il n'intègre pas tout le contenu.
J'ai l'impression de préparer ici les fonctions individuelles nécessaires pour chaque page. Encore une fois, mettez une balise de bloc comme
{% block CONTENTSNAME%} '' `` dans la partie que vous souhaitez insérer dans le modèle enfant.
Faites quelque chose de très spécifique, comme ce qui manque, ou mettez en fait une variable et affectez-la. Une image qui complète une page Web.
Il semble qu'il existe des règles détaillées concernant les balises, et je vais les résumer.
Ceci est une balise pour montrer la relation parent-enfant du modèle. Je vais donner à l'enfant le nom du modèle du parent en faisant extend. Ensuite, vous pouvez insérer le contenu là où le parent a créé la balise de bloc.
La mise en garde à l'utilisation de cette balise est que la balise extend doit être en haut. Veuillez noter que si vous écrivez cette balise au milieu, l'erreur ne sera pas héritée normalement.
Le document a un exemple concret comme celui-ci.
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css" />
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
{% endblock %}
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
L'enfant ressemble à ça.
base_CHILD.html
{% extends 'base.html' %}
{% block title %}My amazing blog {%endblock%}
{% block content %}
{% for entry in bloc_entries %}
<h2>{{entry.title}}</h2>
<p>{{entry.body}}</p>
{%endfor%}
{%endblock%}
Il peut être préférable de passer en revue les détails et les spécificités de l'utilisation des balises. ..
Il y a de nombreux blocs et il n'y a rien de mal à cela. Par conséquent, il semble qu'il vaut mieux aller d'un bout à l'autre là où il est susceptible d'être utilisé à l'avenir.
Si vous pensez que la même chose est codée à plusieurs reprises dans le modèle de l'enfant, il est préférable de l'écrire dans le modèle parent.
Il est plus facile à lire avec moins de répétitions. SEC! SEC !!
Si vous rédigez la correspondance en faisant {% endblock CONTENTSNAME%}, elle sera plus facile à lire pour les autres. C'est une ère d'open source, donc si vous ne l'écrivez pas en supposant qu'il sera lu par d'autres personnes, ce sera difficile plus tard. ..
Les noms des balises de bloc doivent être indépendants. Cela ne fonctionne pas si vous avez le même nom.
Il semble que l'échange de balises de bloc ne soit pas à sens unique entre parents et enfants, mais réciproque. Si les parents préparent beaucoup de balises de bloc, il semble que les enfants auront des problèmes car ils ne sauront pas à laquelle se référer lorsqu'ils verront le tag du parent.
Peut-être quelque chose comme ça. Si vous étudiez ceci, lisez le document et pratiquez un peu, la relation d'héritage du modèle devrait être correcte. .. ..
Recommended Posts