我有一个页面,用户可以在其中将自己的模板提交到 textarea 中,现在它需要这么简单。然而,由于它是用户生成的输入,我需要验证他们没有做破坏我的应用程序其余部分的事情,同时如果他们做错了什么,就他们做错了什么提供有用的反馈。
为了提供有用的反馈,我想要一些类似的东西来看看 django 为我提供了什么(使用 django 1.4):
尤其是上面那个位。我将用户模板放在 django 模板中,所以我不必自己验证语法错误和东西。看起来像这样:
try:
template = get_template_from_string(user_input)
template.render(context=Context())
except:
do something to ouptut the error
需要渲染调用,否则根本不会抛出异常。
我已经尝试打印异常及其参数,但这只能提供非常有限的信息。我也尝试使用回溯,但它从不返回行号或模板中的任何内容,只返回 python 代码中引发异常的位置。我也无法使用谷歌找到任何东西,我通过 Django 源代码进行的搜索让我想知道实际的错误页面是在哪里生成的......
所以基本上我的问题是;我如何获得图像中显示的信息?
编辑 澄清:我希望用户能够制作模板,以便在发送电子邮件时可以使用这些模板。由于 Django 模板引擎已经存在,我想我会使用那个而不是其他东西。
使用此代码段和我自己对变量的一些解析使模板本身变得安全。到目前为止一切正常,除了对用户有用的调试消息。到目前为止,我所做的只是:“解析模板时出现问题,意外的块标签扩展”(例如),我希望它更像上面显示的图像。