Django super introduction par les débutants Python! Partie 3 J'ai essayé d'utiliser la fonction d'héritage de fichier de modèle

À propos de cet article

Voici la page de sortie du résultat de l'apprentissage de Django chez Udemy. Ceci est une continuation de l'article précédent . Cette fois, j'essaierai d'utiliser la fonction d'héritage du fichier modèle de Django.

urls.py Cette fois, nous expliquerons la fonction d'héritage du fichier modèle, donc ulrs.py est le même que la dernière fois.

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 est le même que la dernière fois, mais le code est ci-dessous au cas où.

first\myapp\views.py


from django.shortcuts import render

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

Créer un fichier HTML de base

Créez le HTML qui sera la source d'héritage. L'emplacement sera le dossier au-dessus de index.html qui a été créé la dernière fois. Veuillez noter qu'ils ne sont pas dans le même dossier. image.png

Une fois créé, entrez le code ci-dessous.

first\myapp\templates\base.html


<html>
    <head>
        {% block title %}
            <title>Page source de l'héritage</title>
        {% endblock %}
    </head>
    <body>
        <h1>Page d'étude Django</h1>
        <div>
            {% block body %}
            {% endblock %}
        </div>
    </body>
</html>

Il y a deux points. Entrez {% block title%} {% endblock%} '' dans la partie principale, Entrez {% block body%} {% endblock%} '' dans la partie du corps. Ensuite, éditons index.html, qui est la destination de l'héritage.

Modification du fichier de modèle hérité (index.html)

Comme je l'ai fait dans l'article précédent, l'emplacement du fichier est le suivant. image.png

Ouvrez le fichier et écrivez comme suit.

first\myapp\templates\myapp\index.html


{% extends "base.html" %}

{% block title %}
    <title>Page d'étude Django</title>
{% endblock %}

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

    <hr>

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

Une description du code. Tout d'abord, héritez du fichier modèle créé précédemment avec {% extend "base.html"%}. C'est un cas où une erreur courante est de mettre base.html au mauvais endroit et d'obtenir une erreur.

Ensuite, j'ai mis la balise de titre dans `` {% block title%} {% endblock%} ''. Cela signifie mettre un titre unique pour la page index.html. Ceci est utile lorsque vous souhaitez créer une page html autre que index.html et lui donner un titre différent. Si vous n'entrez rien, le titre dans base.html sera reflété et "Page source d'héritage" sera affiché.

Ensuite, entourez toute la partie du corps créée la dernière fois avec `` {% block body%} {% endblock%} ''. C'est également la même chose que le titre. index.html Cela signifie décrire le corps unique de la page.

À part cela, je fais souvent des choses comme hériter de la partie navigation et hériter de la partie pied de page. En utilisant la fonction d'héritage, même s'il y a un changement dans une partie de la page, il sera plus facile de le refléter dans l'ensemble. Django a diverses fonctions, mais je pense que la fonction d'héritage est une fonction que vous utiliserez certainement.

Contrôle de fonctionnement

Démarrez le serveur de développement avec py manage.py runserver et vérifiez le fonctionnement. Il dit "Ceci est une page d'étude Django" que j'ai rempli uniquement dans base.html. Le titre de la page s'affiche sous la forme "Page d'étude Django" Si la partie du corps peut être affichée normalement, cela réussit. image.png

Recommended Posts

Django super introduction par les débutants Python! Partie 3 J'ai essayé d'utiliser la fonction d'héritage de fichier de modèle
Django super introduction par les débutants Python! Partie 2 J'ai essayé d'utiliser les fonctions pratiques du modèle
Django super introduction par les débutants Python! Partie 6 J'ai essayé d'implémenter la fonction de connexion
Django super introduction par les débutants Python! Partie 1 J'ai essayé d'afficher une page HTML qui ne dit que "Hello World"
Django super introduction par les débutants Python! Partie 5 J'ai créé une application de journal super simple avec une vue générale basée sur la classe
Django super introduction par les débutants Python! Partie 4 J'ai créé une application de journal super simple (créée uniquement avec des fonctions sans utiliser de vues à usage général basées sur les classes)
J'ai essayé d'analyser la carte du Nouvel An par moi-même en utilisant python
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai essayé d'utiliser le module Datetime de Python
[Python] Smasher a essayé de faire du processus de chargement de la vidéo une fonction à l'aide d'un générateur
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
J'ai essayé d'approcher la fonction sin en utilisant le chainer
Introduction à la création d'IA avec Python! Partie 2 J'ai essayé de prédire le prix de l'immobilier dans la ville de Boston avec un réseau neuronal
[Python] Vous pouvez enregistrer un objet dans un fichier en utilisant le module pickle.
J'ai créé une fonction pour récupérer les données de la colonne de base de données par colonne en utilisant sql avec sqlite3 de python [sqlite3, sql, pandas]
[Django] J'ai essayé d'implémenter des restrictions d'accès par héritage de classe.
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé d'approcher la fonction sin en utilisant chainer (re-challenge)
J'ai essayé de créer une API RESTful en connectant l'API rapide du framework Python explosif à MySQL.
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé de transformer un fichier Python en un EXE (erreur de récursivité prise en charge)
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
[Introduction à la simulation] J'ai essayé de jouer en simulant une infection corona ♬ Partie 2
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
J'ai essayé de créer une application todo en utilisant une bouteille avec python
[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
Super Introduction Arithmétique Bit Python
J'ai essayé de communiquer avec un serveur distant par communication Socket avec Python.
Les débutants en Python publient des applications Web à l'aide de l'apprentissage automatique [Partie 2] Introduction à Python explosif !!
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
J'ai essayé de refactoriser le code du modèle publié dans "Obtenir des images de l'API Flickr avec Python" (Partie 2)
[Python] J'ai essayé de remplacer le nom de la fonction par le nom de la fonction
vprof - J'ai essayé d'utiliser le profileur pour Python
<Python> Un quiz pour convertir par lots les noms de fichiers séparés par une chaîne de caractères spécifique dans le cadre du nom de fichier
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 5/22]
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 4/22]
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Part3 / 22]
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 1/22]
Introduction à la création d'IA avec Python! Partie 3 J'ai essayé de classer et de prédire les images avec un réseau de neurones convolutifs (CNN)
Exécutez des fichiers Python à partir de HTML en utilisant Django
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (première moitié)
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python