HTML Templating mit Jinja2 - Lost

7

Ich versuche, eine HTML-Vorlage in Python mit Jinja2 zu erstellen. Ich habe einen Vorlagenordner mit meiner 'template.html', aber ich weiß nicht, wie ich mit Umgebungen oder Paketladern umgehen soll.

Ich habe Jinja2 mit easy_python installiert und das folgende Skript ausgeführt.

%Vor%

Ich bekomme den folgenden Fehler, weil ich nicht weiß, wie man ein Paket / Modul definiert. Bitte helfen Sie mir, ich möchte nur eine einfache Vorlage erstellen.

%Vor%     
pombo 11.01.2013, 11:05
quelle

4 Antworten

8

PackageLoader erwartet ein aktuelles Python-Modul mit der regulären Punktsyntax. Zum Beispiel, wenn Ihre Struktur wie folgt aussieht:

%Vor%

Sie sollten myapp als Modulnamen verwenden.

    
patrys 11.01.2013, 11:14
quelle
9

Wenn Sie kein Python-Paket benötigen oder benötigen, sollten Sie wahrscheinlich ein FileSystemLoader stattdessen, wie folgt:

%Vor%     
Flimm 16.05.2017 19:06
quelle
8

Ich habe dieses Problem mit dem folgenden Code gelöst:

%Vor%

wo dieser Code in der Datei scriptname.py ist.

Ich bin mir nicht sicher, ob meine Antwort relevant ist, aber ich habe mich gefragt, ob vielleicht jemand diese Antwort nützlich finden könnte. Wenn ich falsch liege, lass es mich wissen.

    
pafede2 22.08.2013 12:15
quelle
1

PackageLoader ist wie folgt definiert:

%Vor%

Und dann ist die Methode __init__() wie folgt:

%Vor%

Dadurch bemerken wir, dass eine Struktur wie folgt aussieht:

%Vor%

Wird die gleiche PackageLoader -Instanz mit diesen beiden Deklarationen haben:

%Vor%

Wenn Sie also vom Pfad myapp/ ausgehen, müssen Sie nur sagen:

%Vor%

Es wird also nur templates/ als Pfad verwendet. Wenn Sie das zweite Argument leer lassen, wird es versuchen, die Vorlagen in templates/templates zu finden.

Schließlich können Sie überprüfen, was mit der Methode list_templates() geladen wurde:

%Vor%     
fedorqui 07.06.2017 13:51
quelle

Tags und Links