public:appro-s7:td_web:templates

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
public:appro-s7:td_web:templates [2023/10/30 11:03] edaucepublic:appro-s7:td_web:templates [2023/11/03 14:59] (Version actuelle) edauce
Ligne 1: Ligne 1:
-Templates Django+==== 12. Templates Django ====
  
 Il est temps d'afficher des données ! Pour nous aider, Django fournit des balises de gabarit (template tags) qui sont intégrées au framework. Pour le reste du tutoriel, nous utiliserons plutôt le mot template, bien plus répandu que sa traduction "gabarit". Il est temps d'afficher des données ! Pour nous aider, Django fournit des balises de gabarit (template tags) qui sont intégrées au framework. Pour le reste du tutoriel, nous utiliserons plutôt le mot template, bien plus répandu que sa traduction "gabarit".
  
-Qu'est-ce que c'est que des balises de template ?+=== Qu'est-ce que c'est que des balises de template ? ===
  
 En HTML, vous ne pouvez pas mettre directement du code Python car les navigateurs seraient incapables de le comprendre. Les navigateurs ne connaissent que le HTML. Nous vous avons signalé précédemment que HTML est du genre statique, alors que Python est bien plus dynamique. En HTML, vous ne pouvez pas mettre directement du code Python car les navigateurs seraient incapables de le comprendre. Les navigateurs ne connaissent que le HTML. Nous vous avons signalé précédemment que HTML est du genre statique, alors que Python est bien plus dynamique.
Ligne 9: Ligne 9:
 Les Balises de template Django nous permettent de transférer des choses ressemblant à du Python dans du HTML afin de nous permettre de construire des sites web plus rapidement. Cool, non ? Les Balises de template Django nous permettent de transférer des choses ressemblant à du Python dans du HTML afin de nous permettre de construire des sites web plus rapidement. Cool, non ?
  
-Template d'affichage de la liste des billets+=== Template d'affichage de la liste des billets ===
  
 Dans le chapitre précédent, nous avons donné à notre template une liste de billets à l'aide de la variable billets. Nous allons maintenant les afficher en HTML. Dans le chapitre précédent, nous avons donné à notre template une liste de billets à l'aide de la variable billets. Nous allons maintenant les afficher en HTML.
Ligne 15: Ligne 15:
 Afin d'afficher une variable dans un template Django, nous utiliserons des doubles accolades avec le nom de la variable à l'intérieur. Ça ressemble à ceci : Afin d'afficher une variable dans un template Django, nous utiliserons des doubles accolades avec le nom de la variable à l'intérieur. Ça ressemble à ceci :
  
-blog/templates/blog/post_list.html+''blog/templates/blog/post_list.html''
 <code> <code>
 {{ billets }} {{ billets }}
 </code> </code>
  
-Essayez de faire la même chose avec votre template blog/templates/blog/post_list.html. Ouvrez-le avec votre éditeur et remplacez tout ce qui se trouve entre la seconde balise <div> jusqu'au troisième </div> avec la ligne {{ billets }}. Sauvegardez votre fichier et rafraîchissez votre page pour voir le résultat :+Essayez de faire la même chose avec votre template ''blog/templates/blog/post_list.html''. Ouvrez-le avec votre éditeur et remplacez tout ce qui se trouve entre la seconde balise <div> jusqu'au troisième </div> avec la ligne {{ billets }}. Sauvegardez votre fichier et rafraîchissez votre page pour voir le résultat :
  
-[Image "https://tutorial.djangogirls.org/fr/django_templates/images/step1.png"]+{{https://tutorial.djangogirls.org/fr/django_templates/images/step1.png}}
  
 Comme vous pouvez le voir, tout ce que nous avons, c'est ceci : Comme vous pouvez le voir, tout ce que nous avons, c'est ceci :
  
-blog/templates/blog/post_list.html +''blog/templates/blog/post_list.html'' 
 +<code>
 <QuerySet [<Billet: My second post>, <Billet: My first post>]> <QuerySet [<Billet: My second post>, <Billet: My first post>]>
 +</code>
  
 Cela signifie que Django l'interprète comme une liste d'objets. Essayez de vous rappeler comment afficher des listes en Python. Dans un template Django, vous pouvez les écrire de la façon suivante : Cela signifie que Django l'interprète comme une liste d'objets. Essayez de vous rappeler comment afficher des listes en Python. Dans un template Django, vous pouvez les écrire de la façon suivante :
  
-blog/templates/blog/post_list.html +''blog/templates/blog/post_list.html'' 
 +<code>
 {% for billet in billets %} {% for billet in billets %}
     {{ billet }}     {{ billet }}
 {% endfor %} {% endfor %}
 +</code>
  
 Essayez ceci dans votre template. Essayez ceci dans votre template.
  
-[ImageFigure 13.2](image_link)+{{https://tutorial.djangogirls.org/fr/django_templates/images/step2.png}}
  
 Ça marche ! Cependant, nous aimerions plutôt afficher les billets à la manière des billets statiques, comme lorsque nous les avions créés dans le chapitre Introduction au HTML. Vous pouvez mélanger HTML et balises de template. Notre <body> ressemble maintenant à ceci : Ça marche ! Cependant, nous aimerions plutôt afficher les billets à la manière des billets statiques, comme lorsque nous les avions créés dans le chapitre Introduction au HTML. Vous pouvez mélanger HTML et balises de template. Notre <body> ressemble maintenant à ceci :
  
-blog/templates/blog/post_list.html +''blog/templates/blog/post_list.html'' 
 +<code html>
 <div> <div>
     <h1><a href="/">Django Girls Blog</a></h1>     <h1><a href="/">Django Girls Blog</a></h1>
Ligne 57: Ligne 59:
     </div>     </div>
 {% endfor %} {% endfor %}
 +</code>
  
-Tout ce qui se situe entre {% for %} et {% endfor %} va être répété pour chaque objet présent dans la liste. Rafraîchissez votre page :+Tout ce qui se situe entre '{% for %}et '{% endfor %}va être répété pour chaque objet présent dans la liste. Rafraîchissez votre page :
  
-[ImageFigure 13.3](image_link)+{{https://tutorial.djangogirls.org/fr/django_templates/images/step3.png}}
  
-Avez-vous remarqué que nous avons utilisé une notation légèrement différente cette fois-ci ({{ billet.title }} ou {{ billet.text }}) ? Nous accédons aux données associées à chaque champ défini dans notre modèle Billet. De même, le |linebreaksbr nous permet de rediriger le texte des billets à travers un filtre qui convertit automatiquement les fins de lignes en paragraphes.+Avez-vous remarqué que nous avons utilisé une notation légèrement différente cette fois-ci (''{{ billet.title }}'' ou ''{{ billet.text }}'') ? Nous accédons aux données associées à chaque champ défini dans notre modèle Billet. De même, le ''|linebreaksbr'' nous permet de rediriger le texte des billets à travers un filtre qui convertit automatiquement les fins de lignes en paragraphes.
  
-Ça a marché ? Bravo Éloignez vous un peu de votre clavier maintenant : vous avez mérité de faire une pause. :) +Ça a marché ? Félicitations!
- +
-[Figure 13.4](image_link) +
- +
- +
- +
-<html> +
-<h1 id="templates-django">Templates Django</h1> +
-<p>Il est temps d&apos;afficher des donn&#xE9;es ! Pour nous aider, Django fournit des balises de gabarit (<strong>template tags</strong>) qui sont int&#xE9;gr&#xE9;es au framework. Pour le reste du tutoriel, nous utiliserons plut&#xF4;t le mot template, bien plus r&#xE9;pandu que sa traduction &quot;gabarit&quot;.</p> +
-<h2 id="quest-ce-que-cest-que-des-balises-de-template-">Qu&apos;est-ce que c&apos;est que des balises de template ?</h2> +
-<p>En HTML, vous ne pouvez pas mettre directement du code Python car les navigateurs seraient incapables de le comprendre. Les navigateurs ne connaissent que le HTML. Nous vous avons signal&#xE9; pr&#xE9;c&#xE9;demment que HTML est du genre statique, alors que Python est bien plus dynamique.</p> +
-<p>Les <strong>Balises de template Django</strong> nous permettent de transferer des choses ressemblant &#xE0; du Python dans du HTML afin de nous permettre de construire des sites web plus rapidement. Cool, non ?</p> +
-<h2 id="template-daffichage-de-la-liste-des-billets">Template d&apos;affichage de la liste des billets</h2> +
-<p>Dans le chapitre pr&#xE9;c&#xE9;dent, nous avons donn&#xE9; &#xE0; notre template une liste de billets &#xE0; l&apos;aide de la variable <code>billets</code>. Nous allons maintenant les afficher en HTML.</p> +
-<p>Afin d&apos;afficher une variable dans un template Django, nous utiliserons des doubles accolades avec le nom de la variable &#xE0; l&apos;int&#xE9;rieur. &#xC7;a ressemble &#xE0; ceci :</p> +
-<p></p><p class="code-label">blog/templates/blog/post_list.html</p><p></p> +
-<pre><code class="lang-html">{{ billets }} +
-</code></pre> +
-<p>Essayez de faire la m&#xEA;me chose avec votre template <code>blog/templates/blog/post_list.html</code>. Ouvrez-le avec votre &#xE9;diteur et remplacez tout ce qui se trouve entre la seconde balise <code>&lt;div&gt;</code> jusqu&apos;au troisi&#xE8;me <code>&lt;/div&gt;</code> avec la ligne <code>{{ billets }}</code>. Sauvegardez votre fichier et rafraichissez votre page pour voir le r&#xE9;sultat :</p> +
-<p><img src="https://tutorial.djangogirls.org/fr/django_templates/images/step1.png" alt="Figure 13.1" width=300></p> +
-<p>Comme vous pouvez le voir, tout ce que nous avons, c&apos;est ceci :</p> +
-<p></p><p class="code-label">blog/templates/blog/post_list.html</p><p></p> +
-<pre><code class="lang-html">&lt;QuerySet [&lt;Billet: My second post&gt;, &lt;Billet: My first post&gt;]&gt; +
-</code></pre> +
-<p>Cela signifie que Django l&apos;interpr&#xE8;te comme une liste d&apos;objets. Essayez de vous rappeler comment afficher des listes en Python. Dans un template Django, vous pouvez les &#xE9;crire de la fa&#xE7;on suivante :</p> +
-<p></p><p class="code-label">blog/templates/blog/post_list.html</p><p></p> +
-<pre><code class="lang-html">{% for billet in billets %} +
-    {{ billet }} +
-{% endfor %} +
-</code></pre> +
-<p>Essayez ceci dans votre template.</p> +
-<p><img src="https://tutorial.djangogirls.org/fr/django_templates/images/step2.png" alt="Figure 13.2" width=300></p> +
-<p>&#xC7;a marche ! Cependant, nous aimerions plut&#xF4;t afficher les billets &#xE0; la mani&#xE8;re des billets statiques, comme lorsque nous les avions cr&#xE9;&#xE9;s dans le chapitre <strong>Introduction au HTML</strong>. Vous pouvez mixer HTML et balises de template. Notre <code>body</code> ressemble maintenant &#xE0; ceci :</p> +
-<p></p><p class="code-label">blog/templates/blog/post_list.html</p><p></p> +
-<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span> +
-    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">&quot;/&quot;</span>&gt;</span>Django Girls Blog<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span> +
-<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> +
- +
-{% for billet in billets %} +
-    <span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span> +
-        <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>published: {{ billet.published_date }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span> +
-        <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">&quot;&quot;</span>&gt;</span>{{ billet.title }}<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span> +
-        <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>{{ billet.text|linebreaksbr }}<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span> +
-    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> +
-{% endfor %} +
-</code></pre> +
-<p>Tout ce qui se situe entre <code>{% for %}</code> et <code>{% endfor %}</code> va &#xEA;tre r&#xE9;p&#xE9;t&#xE9; pour chaque objet pr&#xE9;sent dans la liste. Rafraichissez votre page :</p> +
-<p><img src="https://tutorial.djangogirls.org/fr/django_templates/images/step3.png" alt="Figure 13.3" width=300></p> +
-<p>Avez-vous remarqu&#xE9; que nous avons utilis&#xE9; une notation l&#xE9;g&#xE8;rement diff&#xE9;rente cette fois-ci (<code>{{ billet.title }}</code> ou <code>{{ billet.text }}</code>) ? Nous acc&#xE9;dons aux donn&#xE9;es associ&#xE9;es &#xE0; chaque champ d&#xE9;fini dans notre mod&#xE8;le <code>Billet</code>. De m&#xEA;me, le <code>|linebreaksbr</code> nous permet de rediriger le texte des billets &#xE0; travers un filtre qui convertit automatiquement les fins de lignes en paragraphes.</p>+
  
-<p>&#xC7;a a march&#xE9; ? Bravo ! &#xC9;loignez vous un peu de votre clavier maintenant : vous avez m&#xE9;rit&#xE9; de faire une pause. :)</p> 
-<p><img src="https://tutorial.djangogirls.org/fr/django_templates/images/donut.png" alt="Figure 13.4" width=300></p> 
  
-</html> 
 [[public:appro-s7:td_web:css|13. Le CSS]] [[public:appro-s7:td_web:css|13. Le CSS]]
  • public/appro-s7/td_web/templates.1698660204.txt.gz
  • Dernière modification : 2023/10/30 11:03
  • de edauce