[PYTHON] Tutoriel Django (Créer une application de blog) ⑦ --Front End Complete

La dernière fois, dans Django Tutorial (Create Blog App) ⑥ --Article Details / Edit / Delete Function, nous avons créé les écrans de détails, d'édition et de suppression de chaque article. ..

Cette fois, nous apporterons des ajustements majeurs au modèle, mais si nous le divisons grossièrement, nous ferons ce qui suit.

  1. Créer un écran commun à toutes les pages

  2. Création d'une barre de navigation

  3. Modifiez chaque modèle

  4. Supprimez les modèles et processus inutiles

Créer un écran commun à toutes les pages

Non limité à Django, il y a des endroits sur la page d'accueil qui sont affichés en commun même si l'écran change. Dans Qiita, la barre de navigation verte affichée en haut est un bon exemple.

↓ Ce image.png Cependant, il est difficile de l'écrire dans chaque modèle à chaque fois. Si j'écris le code une fois et que je le termine, mais quand je pense au moment où la correction a été faite ...

Par conséquent, nous utiliserons le ** modèle commun ** comme fonction pratique de Django. En termes simples, les parties communes sont rassemblées dans un seul fichier, La partie qui diffère d'un écran à l'autre est que différents modèles sont appelés et utilisés.

Pour ce faire, créez d'abord un fichier directement sous le dossier du modèle. Cette fois, créons un fichier appelé /template/base.html.

└── templates
    ├── base.html #ajouter à
    └── blog
        ├── index.html
        ├── post_confirm_delete.html
        ├── post_detail.html
        ├── post_form.html
        └── post_list.html

Écrire le traitement commun dans ce fichier et les parties qui diffèrent pour chaque écran J'appellerai un fichier tel que post_detail.html.

Modifier base.html

Le contenu sera comme ça.

base.html


<!doctype html>
<html lang="ja">
<head>
    <title>Le blog de tmasuyama</title>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
</head>
<body>

<div class="container">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="{% url 'blog:post_list' %}">Haut</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item">
                    <a class="nav-link" href="{% url 'blog:post_create' %}">Publier</a>
                </li>
            </ul>
        </div>
    </nav>

    <!--Le contenu de chaque modèle est appelé dans ce bloc-->
    {% block content %} #Attention!
    {% endblock %}      #Attention!
</div>

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>

</body>
</html>

Ce tutoriel ne rentre pas dans les détails sur le frontal, Vous pouvez appeler et utiliser Bootstrap à partir du CDN pour le rendre beau avec Bootstrap, La barre de navigation est représentée dans