转义处理和Django的{{○○|safe}}(安全过滤器)
在使用Django创建Web应用程序时,我对{{○○|safe}}的含义不是很清楚,所以我决定将周边的知识和备忘录整理起来作为备忘录。
|中文中,safe是什么意思。
Django的一种过滤器功能。关于过滤器功能的讨论请参考这篇文章,模板部分用于处理从视图接收到的变量。
|保护的作用
在使用safe的情况下,变量中包含的HTML标签将被处理而不进行转义。例如,如果变量中包含HTML标签,如果不加入safe,则会将其作为普通字符串加载,但通过加入safe,则可以将其识别为标签。
“Escape (escape processing), what is it?” in Chinese can be paraphrased as:
逃脱(逃脱处理),是什么意思?
在前面轻描淡写提到的“エスケープ”一词。虽然随口使用,但直到最近都无法解释其含义。经常听到“エスケープ处理”的词,到底是什么呢?
看起来,据说“エスケープ处理”是在编程中将用于特殊符号的处理视为普通字符串时进行的处理。
以前提到Django的例子来说,当从视图传递变量到模板时,HTML标签会进行逃逸处理,并被视为普通字符串的一部分传递。
相反,|safe则是解除(取消)了逃逸处理(使逃逸失效)。
引用资料
【Django】模板:过滤器列表(使用方法、写法)
Django的{{ 〇〇 |safe }}是什么意思?
什么是转义处理?