[PYTHON] Django Tutorial (Blog App erstellen) ⑦ --Front End Complete

Letztes Mal haben wir in Django Tutorial (Blog-App erstellen) ⑥ - Artikeldetails / Bearbeiten / Löschen-Funktion die Bildschirme für jeden Artikel erstellt, bearbeitet und gelöscht. ..

Dieses Mal werden wir größere Anpassungen an der Vorlage vornehmen, aber wenn wir sie grob teilen, werden wir Folgendes tun.

  1. Erstellen eines Bildschirms, der allen Seiten gemeinsam ist

  2. Erstellen einer Navigationsleiste

  3. Ändern Sie jede Vorlage

  4. Löschen Sie unnötige Vorlagen und Prozesse

Erstellen eines Bildschirms, der allen Seiten gemeinsam ist

Nicht nur auf Django beschränkt, es gibt Orte auf der Homepage, die gemeinsam angezeigt werden, auch wenn sich der Bildschirm ändert. In Qiita ist die oben angezeigte grüne Navigationsleiste ein gutes Beispiel.

↓ Dies image.png Es ist jedoch schwierig, dies jedes Mal in jede Vorlage zu schreiben. Wenn ich den Code einmal schreibe und beende, aber wenn ich an die Zeit denke, als die Korrektur vorgenommen wurde ...

Daher werden wir ** gemeinsame Vorlage ** als praktische Funktion von Django verwenden. Einfach ausgedrückt, werden die gemeinsamen Teile in einer Datei zusammengefasst. Der Teil, der sich von Bildschirm zu Bildschirm unterscheidet, besteht darin, dass verschiedene Vorlagen aufgerufen und verwendet werden.

Erstellen Sie dazu zunächst eine Datei direkt unter dem Vorlagenordner. Dieses Mal erstellen wir eine Datei mit dem Namen /template/base.html.

└── templates
    ├── base.html #hinzufügen
    └── blog
        ├── index.html
        ├── post_confirm_delete.html
        ├── post_detail.html
        ├── post_form.html
        └── post_list.html

Schreiben Sie eine gemeinsame Verarbeitung in diese Datei und die Teile, die sich für jeden Bildschirm unterscheiden Ich werde eine Datei wie post_detail.html aufrufen.

Ändern Sie base.html

Der Inhalt wird so sein.

base.html


<!doctype html>
<html lang="ja">
<head>
    <title>tmasuyamas Blog</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' %}">oben</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' %}">Post</a>
                </li>
            </ul>
        </div>
    </nav>

    <!--Der Inhalt jeder Vorlage wird in diesem Block aufgerufen-->
    {% block content %} #Beachtung!
    {% endblock %}      #Beachtung!
</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>

Dieses Tutorial geht nicht detailliert auf das Frontend ein. Sie können Bootstrap verwenden, indem Sie Bootstrap vom CDN aus aufrufen, damit es gut aussieht. Die Navigationsleiste wird in