Outils pour utilisateurs

Outils du site


python:django:templates

Templates

Par défaut, Django cherche les templates dans le dossier templates de chaque application.

Dans ce dossier templates, un sous-dossier portant le nom de l'application.

./monsite
  ├── blog
  │   ├── ...
  │   ├── templates
  │   │   └── blog
  │   │       ├── home.html
  │   │       └── ...
  │   └── ...
  ├── ...
  └── monsite
      └── ...

Rendu d'un template

Renvoyer le rendu d'un template comme réponse à une requête.

Dans une vue de l'application Blog :

./monsite/blog/views.py
from django.shortcuts import render
 
def home(request):
    return render(request, 'blog/home.html')

Passer des valeurs

Vue :

./monsite/blog/views.py
def home(request):
    posts = [
        {
            'author'     : 'Albert Dupont',
            'title'      : 'Post 1',
            'content'    : 'Blog post content 1',
            'date_posted': '28 Mai 2021',
        },
        {
            'author'     : 'John Doe',
            'title'      : 'Post 2',
            'content'    : 'Blog post content 2',
            'date_posted': '29 Mai 2021',
        },
    ]
 
    return render(request, 'blog/home.html', {
        'posts': posts
    })

Template :

./monsite/blog/templates/blog/home.html
<h1>Blog</h1>
 
{% for post in posts %}
    <h2>{{ post.title }}</h2>
    <p>By {{ post.author }} on {{ post.date_posted }}</p>
    <p>{{ post.content }}</p>
{% endfor %}
python/django/templates.txt · Dernière modification: 2022/11/24 06:14 par marclebrun