Ich habe eine WSGI Anwendung. In dem ich Jinja2 Templates benutze. Aus denen heraus will ich nun Funktionen direkt ausführen, das mache ich auch. z.B
Code: Alles auswählen
{{time.time()}}
Code: Alles auswählen
import traceback
import sys
def scall(code):
try:
exec code
except:
#return traceback.print_exc()
exceptionType, exceptionValue, exceptionTraceback = sys.exc_info()
erroroutput = traceback.format_exception(exceptionType, exceptionValue, exceptionTraceback)
return "<pre>%s</pre>"%"<br>".join(erroroutput)
Code: Alles auswählen
{{scall("time.time()")}}
Weiteres Porblem `scall` muss ich dort in den Code schreiben von wo aus ich auch das template lade sonst habe ich nicht die gleiche Umgebung und mein exec in scall kennt evl. die lib nicht.
PS: Ich möchte nicht soetwas wie DebuggedApplication(application)
PPS: Wenn es keine schönere Variante gibt werde ich jede Funktion umschreiben und ihnen einen richtiges Try Except schreiben wie es sich eigentlich gehört

mfG Lars