Flask kann Enumerate nicht importieren? UndefinedError: 'enumerate' ist nicht definiert

8

Ich schreibe diesen Code einfach in eine HTML-Seite.

%Vor%

Also, Flask unterstützt die Aufzählung nicht?

    
Aleeee 20.11.2014, 09:15
quelle

2 Antworten

23

Wie Duan sagt, hat Jinja2 eine eigene Sprache. Sieht nach Python aus, ist aber nicht Python. Daher ist die eingebaute Funktion Python enumerate nicht Teil der Jinja2 Template Engine. Es gibt jedoch einige Alternativen, die Sie verwenden können:

Wenn Sie die Elemente in einer Liste auflisten möchten, können Sie die Schleife loop.index0 verwenden spezielle Variable:

%Vor%

Eine weitere Möglichkeit besteht darin, die aufgezählte Version der Liste vorzuberechnen:

%Vor%

Und noch eins, vielleicht könnte auch enumerate als Variable übergeben werden:

%Vor%

Flask ermöglicht das automatische Einfügen von Variablen in den Kontext einer Vorlage mithilfe von Kontextprozessoren . Wenn Sie möchten, dass enumerate built-in-Funktion für alle Ihre Vorlagen verfügbar ist, könnte dies eine gute Lösung sein:

%Vor%

Danke an Sean Vieira für diesen Vorschlag.

    
dreyescat 20.11.2014, 10:01
quelle
3

Flask verwendet Jinja2, um Ihre Vorlage zu rendern, Jinja2 hat eine ähnliche Python-Syntax, aber es ist kein Python.

Was können Sie tun? In Ihrem Python-Code:

%Vor%

Dann beim Rendern der Vorlage das Diktat an sie senden:

%Vor%     
Or Duan 20.11.2014 09:27
quelle

Tags und Links