如何在不通过序列化程序转义的情况下返回html内容?

时间:2017-04-19 13:38:33

标签: python django django-rest-framework

我的TextField模型包含html。
假设我在<a href="http://googke.ru">google</a>中有一行包含TextField
API返回"<a href=\"http://googke.ru\">google</a>"

如何删除"转义?

1 个答案:

答案 0 :(得分:1)

您可以使用html模块,该模块的方法名为escape

html.escape(s, quote=True)
     

转换字符&amp;,&lt;和&gt;在字符串s到HTML安全序列。如果需要显示可能包含的文本,请使用此选项   HTML中的这些字符。 如果可选标记引用为true,则为   字符(&#34;)和(&#39;)也被翻译; 这有助于包含   在由引号分隔的HTML属性值中,如<a href="...">

     

3.2版中的新功能。

s为:s = '<a href="http://example.com">example</a>'然后:

from html import escape

html_line = escape(s)

现在html_line包含s字符串,没有任何&#39;转义&#39;,如下所示:

&lt;a href=&quot;http://example.com&quot;&gt;example&lt;/a&gt;

如果您想保留字符< > &等但避免"的转义,则可以使用html模块中名为unescape的其他方法:

from html import unescape

html_line = unescape(s)

现在html_line将如下所示:

<a href="http://example.com">example</a>