Ansichten für Django -Apps, hauptsächlich für die Verwendung in WebTeam -Django -Apps.
Sie können dieses Modul direkt mit pip install canonicalwebteam.django_views oder alternativ canonicalwebteam.django_views in requirements.txt für Ihre App.
TemplateFinder ist eine Erweiterung von TemplateView , die versucht, die entsprechenden Vorlagen direkt aus URLs zu laden, ohne dass für jede URL eine Ansicht schreiben muss.
Es kann HTML -Vorlagen direkt geladen oder Markdown -Dateien analysieren, die eine "Wrapper_Template" -Dontermatter -Taste enthalten.
Hier ist ein Beispiel dafür, wie Sie TemplateFinder in Ihrer Django -App verwenden können:
# urls.py
from django . conf . urls import url
from canonicalwebteam . django_views import TemplateFinder
# ...
urlpatterns += url ( r"$^" , TemplateFinder . as_view ()),Wenn die App eine URL analysiert, wird an den folgenden Stellen nach Vorlagen suchen, in der Reihenfolge nach Vorlagen:
/parent/location/ => templates/parent/location.html/parent/location/ => templates/parent/location/index.html/parent/location/ => templates/parent/location.md/parent/location/ => templates/parent/location/index.md Wenn die TemplateFinder auf eine Markdown -Datei (enden .md ) stößt, wird in Yaml Frontmatter nach den folgenden Schlüssel suchen:
wrapper_template Obligatorisch : (z. B. wrapper_template: /includes/markdown-wrapper.html ) Ein Pfad zu einer HTML-Vorlage, in der der Parsen-Markdown-Inhalt platziert werden soll. Wenn der Pfad keinen führenden Schrägstrich (z. B. "templates/template.html" oder "../templates/template.html") hat, sucht TemplateFinder nach der Vorlage relativ zum Speicherort der betreffenden Markdown -Datei. Wenn der Wegcontext Optional : (zB: context: {title: "Welcome", description: "A welcome page"} ) Ein Wörterbuch von zusätzlichen Schlüssel / Wertpaaren, die an den Vorlagenkontext übergeben werden sollen.markdown_includes optional : (z. B. markdown_includes: {nav: } ) Eine Zuordnung von Schlüsselnamen in Vorlagenpfade, die auf Markdown -Dateien hinweisen, die zu inklarenden sind. Jeder Vorlagenpfad wird analysiert, das resultierende HTML wird im Vorlagenkontext unter dem entsprechenden Schlüssel übergeben.Hier ist eine Beispiel -Markdown -Datei:
---
wrapper_template: "/includes/markdown-wrapper.html"
markdown_includes:
nav: "includes/nav.md"
context:
title: "Welcome"
description: "A welcome page"
---
Welcome to my website.
## GitHub
I also have [a GitHub page](https://github.com/me).