首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -用Bleach渲染标记

Django -用Bleach渲染标记
EN

Stack Overflow用户
提问于 2016-06-10 21:35:01
回答 1查看 830关注 0票数 0

当我做标记(文字),没有漂白剂,我得到了想要的结果(生):

代码语言:javascript
复制
<p>blah</p>

它正确地显示为:

代码语言:javascript
复制
blah

其中,"p“标记被正确地呈现为段落块。

当我执行bleach.clean(markdown.markdown(文本))时,我得到(raw):

代码语言:javascript
复制
&lt;p&gt;blah&lt;/p&gt;

它不正确地显示为:

代码语言:javascript
复制
<p>blah</p>

其中,"p“标记是文本的一部分,而不是HTML段落块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-11 00:03:27

您需要将bleached HTML标记为安全。

代码语言:javascript
复制
from django.utils.safestring import mark_safe

...
    return mark_safe(bleach.clean(markdown.markdown(text)))

但是,也有姜戈漂白剂提供与Django和现成标签的集成,以便在Django中使用漂白剂。

代码语言:javascript
复制
{% load markdown_deux_tags bleach_tags %}
{{ view_user.profile.about|markdown:"user"|bleach }}

settings.py中,您可以告诉django漂白剂哪些标签是可以的。

代码语言:javascript
复制
BLEACH_ALLOWED_TAGS = ['h1', 'h2', 'p', 'b', 'i', 'strong', 'a']
BLEACH_ALLOWED_ATTRIBUTES = ['href', 'title', 'style']
BLEACH_ALLOWED_STYLES = ['font-family', 'font-weight']
BLEACH_STRIP_TAGS = True

等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37757474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档