使用Django,用户是否可以在表单字段中提交HTML,将其保存,然后在模板中呈现HTML?
一个示例是用户在文本字段内添加链接,然后该链接应呈现为文本其余部分内的标签。
用户将输入类似:
this is a site called <a href="http://stackoverflow.com">SO</a>.
SO链接将是一个链接,而不是将其呈现为文本。
最佳答案
Django默认情况下转义。您可以通过filter or tag将字符串标记为safe
,以防止自动转义行为。
{{ my_text_with_html|safe }}
{% autoescape off %}
{{ my_test_with_html }}
{% endautoescape %}
如果您接受用户输入的html,则需要对其进行清理,以使他们无法编写脚本等。为此,只需将python html进行清理并在将数据发送到模板之前应用它即可。
Python HTML sanitizer / scrubber / filter
关于Django:允许用户在表单字段中提交有效的HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872405/