Heim > Web-Frontend > HTML-Tutorial > django中,kindeditor存到数据库的html,到了前台被html标签被自动转义的解决办法_html/css_WEB-ITnose

django中,kindeditor存到数据库的html,到了前台被html标签被自动转义的解决办法_html/css_WEB-ITnose

WBOY
Freigeben: 2016-06-21 09:09:54
Original
1626 Leute haben es durchsucht

1,使用kindeditor进行了上传图片功能,存储到后台的html代码为:

<img src="/static/content_img/img_2015-07-21-024421.jpg" alt="" />KindEditor
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

2,我把这个unicode字符串返回到前台的模板,结果显示了html代码:

<img src="/static/content_img/img_2015-07-21-024421.jpg" alt="" />KindEditor
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

3,自己开始的解决办法:

存的时候进行escape

content = cgi.escape(content)
Nach dem Login kopieren

这样处理后存到后台的代码变成了:

<img src="/static/content_img/img_2015-07-21-024421.jpg" alt="" />KindEditor
Nach dem Login kopieren

取的时候unescape一下

import HTMLParserhtml_parser = HTMLParser.HTMLParser()infoContent = html_parser.unescape(info.content)
Nach dem Login kopieren

这样处理后的代码变成了:

<img src="/static/content_img/img_2015-07-21-024421.jpg" alt="" />KindEditor
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

4,但是这样问题没有得到处理,于是自己写了一个测试,直接把这段html字符串HttpResponse回到页面,结果显示正常。

又查了下自己原来处理方式的前台的源代码,结果是被转义后的。于是想到如果通过{{content}}方式在前台显示html代码

的话,django模板在编译的时候,会自动对html标签进行转义,稍微查了下,使用以下方式不让django模板自动转义

html标签。同时也解决了自己的问题。

{% autoescape off %}{{infoContent}}{% endautoescape %}
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage