Django super Einführung von Python-Anfängern! Teil 3 Ich habe versucht, die Vererbungsfunktion für Vorlagendateien zu verwenden

Über diesen Artikel

Dies ist die Ausgabeseite des Ergebnisses des Lernens über Django bei Udemy. Dies ist eine Fortsetzung des vorherigen Artikels . Dieses Mal werde ich versuchen, die Vererbungsfunktion von Djangos Vorlagendatei zu verwenden.

urls.py Dieses Mal werden wir die Vererbungsfunktion der Vorlagendatei erläutern, sodass ulrs.py mit dem letzten Mal identisch ist.

first\myapp\urls.py


from django.urls import path
from . import views

app_name = 'myapp'

urlpatterns = [
    path('', views.index, name='index'),
]

views.py views.py ist das gleiche wie beim letzten Mal, aber der Code ist für alle Fälle unten.

first\myapp\views.py


from django.shortcuts import render

def index(request):
    context = {
        'names':['Suzuki','Sato','Takahashi'],
        'message':'Hallo.',
    }
    return render(request, 'myapp/index.html', context)

Erstellen Sie eine Basis-HTML-Datei

Erstellen Sie den HTML-Code, der die Vererbungsquelle sein soll. Der Speicherort ist der Ordner eine Ebene über index.html, der zuletzt erstellt wurde. Bitte beachten Sie, dass sie sich nicht im selben Ordner befinden. image.png

Geben Sie nach der Erstellung den folgenden Code ein.

first\myapp\templates\base.html


<html>
    <head>
        {% block title %}
            <title>Vererbungsquellenseite</title>
        {% endblock %}
    </head>
    <body>
        <h1>Django-Studienseite</h1>
        <div>
            {% block body %}
            {% endblock %}
        </div>
    </body>
</html>

Es gibt zwei Punkte. Geben Sie {% block title%} {% endblock%} in den Kopfteil ein. Geben Sie {% block body%} {% endblock%} in den Körperteil ein. Als nächstes bearbeiten wir index.html, das das Vererbungsziel ist.

Bearbeiten der geerbten Vorlagendatei (index.html)

Wie ich im vorherigen Artikel gemacht habe, ist der Speicherort der Datei wie folgt. image.png

Öffnen Sie die Datei und schreiben Sie wie folgt.

first\myapp\templates\myapp\index.html


{% extends "base.html" %}

{% block title %}
    <title>Django-Studienseite</title>
{% endblock %}

{% block body %}
    <p>{{ names.0 }}Herr.{{ message }}</p>
    <p>{{ names.1 }}Herr.{{ message }}</p>
    <p>{{ names.2 }}Herr.{{ message }}</p>

    <hr>

    {% for name in names %}
        <p>{{ name }}Herr.{{ message }}</p>
    {% endfor %}
{% endblock %}

Eine Beschreibung des Codes. Erben Sie zunächst die zuvor mit {% erweitert "base.html"%} erstellte Vorlagendatei. Dies ist ein Fall, in dem ein häufiger Fehler darin besteht, base.html an der falschen Stelle zu platzieren und einen Fehler zu erhalten.

Als nächstes setze ich das Titel-Tag in {% block title%} {% endblock%}. Dies bedeutet, dass Sie einen eindeutigen Titel für die Seite index.html eingeben. Dies ist nützlich, wenn Sie eine andere HTML-Seite als index.html erstellen und ihr einen anderen Titel geben möchten. Wenn Sie nichts eingeben, wird der Titel in base.html angezeigt und "Vererbungsquellenseite" angezeigt.

Schließen Sie als Nächstes den gesamten zuletzt erstellten Körperteil mit {% block body%} {% endblock%} ein. Dies ist auch dasselbe wie der Titel. index.html Dies bedeutet, den für die Seite eindeutigen Text zu beschreiben.

Abgesehen davon erbe ich oft den Navigationsteil und den Fußzeilenteil. Durch die Verwendung der Vererbungsfunktion wird es einfacher, diese im gesamten Teil wiederzugeben, selbst wenn sich ein Teil der Seite ändert. Django hat verschiedene Funktionen, aber ich denke, dass die Vererbungsfunktion eine Funktion ist, die Sie definitiv verwenden werden.

Funktionsprüfung

Starten Sie den Entwicklungsserver mit py manage.py runserver und überprüfen Sie den Vorgang. Es heißt "Dies ist eine Django-Studienseite", die ich nur in base.html ausgefüllt habe. Der Seitentitel wird als "Django-Lernseite" angezeigt. Wenn das Körperteil normal angezeigt werden kann, ist es erfolgreich. image.png

Recommended Posts

Django super Einführung von Python-Anfängern! Teil 3 Ich habe versucht, die Vererbungsfunktion für Vorlagendateien zu verwenden
Django super Einführung von Python-Anfängern! Teil 2 Ich habe versucht, die praktischen Funktionen der Vorlage zu nutzen
Django super Einführung von Python-Anfängern! Teil 6 Ich habe versucht, die Login-Funktion zu implementieren
Django super Einführung von Python-Anfängern! Teil 1 Ich habe versucht, eine HTML-Seite anzuzeigen, auf der nur "Hallo Welt" steht.
Django super Einführung von Python-Anfängern! Teil 5 Ich habe eine supereinfache Tagebuchanwendung mit einer klassenbasierten Allzweckansicht erstellt
Django super Einführung von Python-Anfängern! Teil 4 Ich habe eine supereinfache Tagebuchanwendung erstellt (nur mit Funktionen erstellt, ohne klassenbasierte Allzweckansichten zu verwenden).
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, das Datetime-Modul von Python zu verwenden
[Python] Smasher hat versucht, den Video-Ladevorgang mithilfe eines Generators zu einer Funktion zu machen
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Einführung in die KI-Erstellung mit Python! Teil 2 Ich habe versucht, den Hauspreis in Boston mit einem neuronalen Netz vorherzusagen
[Python] Sie können ein Objekt mithilfe des Pickle-Moduls in einer Datei speichern.
Ich habe eine Funktion zum Abrufen von Daten aus der Datenbank spaltenweise mithilfe von SQL mit SQLite3 von Python [SQLite3, SQL, Pandas] erstellt.
[Django] Ich habe versucht, Zugriffsbeschränkungen durch Klassenvererbung zu implementieren.
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren (Re-Challenge)
Ich habe versucht, eine RESTful-API zu erstellen, indem ich die explosive Fast-API des Python-Frameworks mit MySQL verbunden habe.
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe versucht, eine Python-Datei in eine EXE-Datei zu verwandeln (Rekursionsfehler unterstützt)
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
[Einführung in die Simulation] Ich habe versucht, durch Simulation einer Koronainfektion zu spielen ♬ Teil 2
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Python Bit Arithmetic Super Einführung
Ich habe versucht, mit einem Remote-Server über Socket-Kommunikation mit Python zu kommunizieren.
Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
Ich habe versucht, den unter "Abrufen von Bildern von der Flickr-API mit Python" (Teil 2) veröffentlichten Vorlagencode zu überarbeiten.
[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen
vprof - Ich habe versucht, den Profiler für Python zu verwenden
<Python> Ein Quiz zum Batch-Konvertieren von Dateinamen, die durch eine bestimmte Zeichenfolge als Teil des Dateinamens getrennt sind
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 5/22]
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
[Python] Deep Learning: Ich habe versucht, Deep Learning (DBN, SDA) ohne Verwendung einer Bibliothek zu implementieren.
Ich habe versucht, die Python-Bibliothek "pykakasi" zu verwenden, die Kanji in Romaji konvertieren kann.
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 4/22]
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 3/22].
[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 1/22]
Einführung in die KI-Erstellung mit Python! Teil 3 Ich habe versucht, Bilder mit einem Convolutional Neural Network (CNN) zu klassifizieren und vorherzusagen.
Führen Sie Python-Dateien mit Django aus HTML aus
Ich habe versucht, die Lernfunktion im neuronalen Netzwerk sorgfältig zu verstehen, ohne die Bibliothek für maschinelles Lernen zu verwenden (erste Hälfte).
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet