Verwendung der in .mako (.html) direkt in mako definierten Renderfunktion

Verwenden Sie die in .mako definierte Renderfunktion direkt in mako

Wenn Sie die Hilfsfunktion der Vorlagen-Engine definieren, möchten Sie sie möglicherweise direkt von außerhalb der Vorlage verwenden. Verwenden Sie für mako get_def.

Verwenden Sie mako (Vorwort)

$ pip install mako

Geben Sie direkt eine Zeichenfolge an und rendern Sie

Die Methode zum direkten Angeben einer Zeichenfolge und zum Rendern lautet wie folgt.

# -*- coding:utf-8 -*-
from mako.template import Template
template = Template(u"""\
hello ${name}
""")

print(template.render(name="world"))
# hello world

Definieren Sie einen Helfer und rufen Sie ihn woanders an.

Die Methode zum Aufrufen der an einem anderen Ort definierten Hilfsfunktion von einem anderen Ort (show.html) lautet wie folgt. Wenn die Dateistruktur wie folgt ist.

$ tree
.
|-- greeting.html
|-- hello_with_otherfile.py
`-- show.html

Registrieren Sie den Pfad der obersten Ebene, der bei der Suche nach einer Vorlage in der Vorlagensuche verwendet wird. Und es ruft Hallo von greeting.html über die show.html-Vorlage auf.

hello_with_otherfile.py

# -*- coding:utf-8 -*-
from mako.lookup import TemplateLookup
import os.path
here = os.path.abspath(os.path.dirname(__file__))

lookup = TemplateLookup([here])
template = lookup.get_template("show.html")
print(template.render(name="world"))

# hello world

show.html

<%namespace file="./greeting.html" name="g"/>
${g.hello(name)}

greeting.html

<%def name="hello(name)">
hello ${name}
</%def>

Verwenden Sie die in .mako definierte Renderfunktion direkt in mako

Endlich das Hauptthema. Verwendung der in .mako definierten Renderfunktion direkt in mako. In diesem Fall ist die in greeting.html definierte Hallo-Funktion die Funktion, die Sie verwenden möchten. Dies verwendet get_def wie folgt.

# -*- coding:utf-8 -*-
from mako.lookup import TemplateLookup
import os.path
here = os.path.abspath(os.path.dirname(__file__))

lookup = TemplateLookup([here])
hello = lookup.get_template("greeting.html").get_def("hello")

print(hello.render("world"))
# hello world

Recommended Posts

Verwendung der in .mako (.html) direkt in mako definierten Renderfunktion
Verwenden Sie die Renderfunktion als Pseudo-HTML-Tag in mako
Verwendung der C-Bibliothek in Python
Verwendung des Generators
Verwendung der Exist-Klausel in Django Queryset
Verwendung des in Lobe in Python erlernten Modells
Wie benutzt man den Dekorateur?
Verwendung der Methode __call__ in der Python-Klasse
So legen Sie das HTML-Klassenattribut in Djangos forms.py fest
Hinweise zur Verwendung von Marshmallow in der Schemabibliothek
Verwendung des optparse-Moduls
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Verwendung der Zip-Funktion von Python
Verwendung des ConfigParser-Moduls
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Verwendung berechneter Spalten in CASTable
Verwendung der Spark ML-Pipeline
Verwendung von Google Test in C-Sprache
[Python] Verwendung von __command__, Funktionserklärung
Verwendung von Anacondas Interpreter mit PyCharm
Verwendung von __slots__ in der Python-Klasse
Verwendung des IPython-Debuggers (ipdb)
So verwenden Sie Map in ViewPager von Android
Verwendung ist und == in Python
[Python] Verwendung der Aufzählungsfunktion (Indexnummer und Element extrahieren)
[C-Sprache] Verwendung der Krypta-Funktion unter Linux [Passwort-Hashing]
So verwenden Sie MkDocs zum ersten Mal
Verwendung der Python-Bildbibliothek in der Python3-Serie
Verwendung der Grafikzeichnungsbibliothek Bokeh
Zusammenfassung der Verwendung von MNIST mit Python
Verwendung der Google Cloud Translation API
Verwendung der NHK-Programmführer-API
[Algorithmus x Python] Verwendung der Liste
So erhalten Sie die Dateien im Ordner [Python]
Wie man tkinter mit Python in Pyenv benutzt
[Python] Verwendung von Hash-Funktion und Taple.
Loggen Sie sich mit json mit pygogo ein.
Wie man eine öffentliche Funktion in Pytest verspottet
Wie benutzt man Python-Shell
So rufen Sie den n-ten größten Wert in Python ab
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Hinweise zur Verwendung von tf.data
So erhalten Sie den Variablennamen selbst in Python
Verwendung von virtualenv
Ausführen des in Ansible Tower hinzugefügten Ansible-Moduls
Wie benutzt man Seaboan?
Wie man Shogun benutzt
So ermitteln Sie die Anzahl der Stellen in Python
Verwendung von Pandas 2
Verwendung von Virtualenv
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
So definieren Sie Decorator und Decomaker mit einer Funktion
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Verwendung von Raspeye Relay Module Python
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image