Django template pour projet

Le template est une couche de présentation qui gère complètement la partie de l'interface utilisateur. ​

La vue est utilisée pour exécuter la logique métier et interagir avec un modèle pour transporter des données et restituer un modèle.​

Indiquer le dossier du template

Créer le dossier exemple "firstproject/stock/templates".

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            'firstproject/stock/templates'
        ],

views.py
from django.shortcuts import render
from .models import Article, Entree, Sortie


def etat(request):
    solde = []
    for p in Article.objects.raw('SELECT * FROM stock_article'):
        article = p.nom
        article_id = p.id
        e = Entree.objects.raw(
            'SELECT article_id as id,   sum(quantite) as quantite FROM stock_entree where article_id = '+str(article_id))
        s = Sortie.objects.raw(
            'SELECT article_id as id,sum(quantite) as quantite FROM stock_sortie where article_id = '+str(article_id))

        qe = 0 if e[0].quantite is None else e[0].quantite
        qs = 0 if s[0].quantite is None else s[0].quantite

        solde.append({'id': article_id, 'article': article, 'entree': qe,
                      'sortie': qs, 'solde': qe-qs})
    return render(request=request, template_name='index.html', context={'data': solde})

index.html
<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>

<body>
    <h1>Hello, world!</h1>

    <table class="table">
        <thead>
            <tr>
                <th scope="col">Id</th>
                <th scope="col">Article</th>
                <th scope="col">Entrée</th>
                <th scope="col">Sortie</th>
                <th scope="col">Solde</th>
            </tr>
        </thead>
        <tbody>
            {% for d in data %}
            <tr>
                <th scope="row">{{ d.id }}</th>
                <td>{{ d.article }}</td>
                <td>{{ d.entree }}</td>
                <td>{{ d.sortie }}</td>
                <td>{{ d.solde }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4"
        crossorigin="anonymous"></script>
</body>

</html>

Resultat

Vidéo explicative