von __future__
importieren wären ordentlich, aber ich kann nicht glauben, wie es (vielleicht jemanden, der mit Mako Interna kann besser vertraut ist) zu machen, arbeitet. Martijn erklärt, warum es nicht möglich ist. Ich kann jedoch ein paar Arbeiten vorschlagen.
Wenn möglich, machen Sie die Division außerhalb der Vorlage und setzen Sie das Ergebnis in den Kontext. Dies passt zu meiner persönlichen Präferenz, so viel Logik wie möglich aus der Vorlage herauszuhalten.
Wenn das keine Option ist, gibt es die Hacky-Lösung, wandeln Sie Ihre Operanden in Floats um. Wenn Sie diese Abteilung in einer Reihe von verschiedenen Orten tun müssen, können Sie eine Funktion in einem Modul-Ebene Block hinzufügen:
<%!
def div(a, b):
return float(a)/float(b)
%>
Definitiv weniger elegant als das, was Sie im Sinne hatten, aber es wird funktionieren.
Ja, ich sah dies aus dem Debugging (und das war der Fehler in Zeile 17), aber Mike Bayer (techspot.zzzeek.org) ist so schlau, ich dachte, er hätte eine Unterkunft dafür. Auch "Teilung" ist nicht der einzige zukünftige Import ("mit" kommt mir in den Sinn). Ich habe 'float()' benutzt, bevor ich das versuchte. – Hollister
Sie müssten eine Feature-Anforderung einfügen, um 'from __future__ with'-Anweisungen an den Anfang der python-Ausgabe für die Vorlage zu verschieben. Da solche Importe aber auch das Template-Gerüst verändern könnten, bin ich mir nicht sicher, ob dies eine gute Idee wäre und von Mike Bayer oder den anderen Mako-Betreuern akzeptiert würde. –