Projet Django template de base
Puis-je créer un modèle de base pour mon projet, toutes les applications qui peuvent en tirer? Ou dois-je créer un modèle de base pour chaque application? Et si je voulais être le même que je venais de copier?
Vous devez vous connecter pour publier un commentaire.
Bien sûr vous pouvez. Un exemple rapide d'un base.html
Et dire que vous avez une application myapp avec un view.html page,
Prendre un certain temps pour lire les docs pour plus d'informations
{% extends xxx %}
peut prendre soit un littéral de chaîne de nom de fichier (c'est à dire "base.html") ou une variable qui correspond à un nom de fichier. Nous utilisons cette au cours du développement et de modifier la valeur de{% extends base_template %}
à la volée. Tous les modèles primaire (listes, des détails, des fichiers plats, etc.) utilisation très générique / balisage sémantique, et tous les CSS/etc. est défini dans le thème de base du fichier. E. g.themes/blue.html
outhemes/neon.html
.PROJECT_ROOT/some_app/templates
en modifiant lesettings.py
fichier - par exemple:'DIRS': [os.path.join(BASE_DIR, "some_app", "templates")]
Oui vous pouvez tout à fait le faire. En utilisant
extends
etinclude
balises de modèle dans vos modèles Django.Je commence à apprendre Django et récemment compris cela. Mon code est à Github si vous êtes intéressé à prendre un coup d'oeil à la façon dont je la structure des modèles Django d'hériter d'une
base.html
et puisinclude
commun des trucs comme la barre de navigation et d'en-tête, pied de page, etc.Oui, vous pouvez créer un modèle de base pour votre projet que d'autres applications pourront étendre. Vérifiez @Kenny_Shen réponse sur comment.
Voulais juste ajouter deux notes si vous êtes préoccupé par application de l'isolement.
Si vous ne voulez pas que votre application à compter sur l' "base.html" convention de nommage, vous pouvez injecter le nom réel avec une variable, jetez un oeil à: Comment puis-je utiliser Django modèle s'étend variable? pour plus de détails,
Vous pouvez nommer l'application du modèle de bloc à quelque chose d'autre, pas de "contenu" pour éviter les collisions avec d'autres applications.