2016-08-07 49 views
0

Mit Flask Rendern Template-Funktion können Sie komplizierte Seiten schnell formen. Ich möchte eine kleine "up vote" "Modul" .html Datei, die alle Skripte und HTML umschließt, um die Schaltfläche funktionieren zu lassen.Jinja2 Flask Python Knopf über viele Seiten

In Jinja können Sie das "extends to" -Tag verwenden, das den aktuellen Abschnitt in den von extend aufgerufenen Abschnitt einfügt, aber können Sie ein Modul von einer beliebigen Vorlage aufrufen?

So ein 1-Beziehung statt einer viele zu 1.

ich den gesamten Code für die Schaltfläche auf den Seiten möchte ich einsetzen könnte, aber ich fühle mich wäre es besser Praxis - und viel schneller - zu habe dieses kleine Modul, das all die Dinge umschließt, die ich brauche. Ich könnte auch Änderungen an diesem Modul vornehmen, die vom gesamten Projekt übernommen werden.

Art von wie eine Website einzubetten.

Ich habe mir ein paar Möglichkeiten ausgedacht, wie die Info für die Schaltfläche in eine Variable für die render_template Funktion zu parsen, aber welche würden Sie empfehlen?

+1

Sie suchen wahrscheinlich nach dem Tag "include" (http://jinja.pocoo.org/docs/dev/templates/#include). –

+0

Danke, ich glaube, das ist genau das, was ich brauchte. –

Antwort

0

Sie sollten die include Anweisung verwenden. Dies ähnelt der Verwendung von import in reinem Python.

Beachten Sie jedoch, dass Jinja2 auch eine import Anweisung hat. Dies unterscheidet sich von include dadurch, dass import darauf ausgerichtet ist, Makros und ausführbaren Code aus einer Datei zu verwenden; nichts wird gerendert. Also, wenn Sie häufige Aufgaben, die Sie mit Jinja2-Anweisungen tun, trennen, können Sie diese in Makros in Dateien exportieren, die Sie dann in Ihren Vorlagen import.

Wenn Sie jedoch die gerenderte Ausgabe verwenden möchten, was Sie tun, bleiben Sie bei include.

+1

Danke, auch für die extra Info. –