首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >django模板过滤器删除html标签

django模板过滤器删除html标签
EN

Stack Overflow用户
提问于 2011-07-07 14:46:30
回答 3查看 43.7K关注 0票数 28

在下面的django模板变量.Is中,可以通过django模板过滤器删除html标记

代码语言:javascript
复制
 {{myvar|safe}}

以下代码将输出如下所示的html

代码语言:javascript
复制
     <div>sddfdsfsdfsdf sd fsdf sd fsdf </div><a>This link</a><img src="some source" />
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-07 15:00:16

你看过striptags吗?它会把你的超文本标记语言变成这样(当然,去掉了This的语法突出显示):

代码语言:javascript
复制
sddfdsfsdfsdf sd fsdf sd fsdf This link

但请注意,此模板过滤器使用regex来剥离HTML标记。在大多数情况下,正则表达式不是处理As we know的正确工具。如果你的超文本标记语言来自外部,请确保使用真正的超文本标记语言解析器对其进行清理,例如lxml.html.clean

票数 46
EN

Stack Overflow用户

发布于 2015-01-22 15:29:50

striptags

尽一切可能剥离所有XHTML标记。

例如:

代码语言:javascript
复制
{{ myvar|striptags }}

如果Joel is a slug<b>Joel</b> <button>is</button> a <span>slug</span>,则输出为myvar。

你也可以在你的python代码中使用strip_tags。

例如,在表单清理方法中:

代码语言:javascript
复制
class AddressForm(forms.ModelForm):

    class Meta:
        model = Address

    def clean(self):
        from django.utils.html import strip_tags
        cleaned_data = super(AddressForm, self).clean()
        cleaned_data['first_name'] = strip_tags(cleaned_data.get('first_name'))
        return cleaned_data

请参阅Django HTML Utils,也可以查看这个简单的Django HTML Sanitizer App

票数 28
EN

Stack Overflow用户

发布于 2021-03-13 15:44:12

要从现有字符串中剥离/删除HTML标记,我们可以使用strip_tags函数。

导入strip_tags

代码语言:javascript
复制
from django.utils.html import strip_tags

内部带有html的简单字符串。

代码语言:javascript
复制
html = '<p>paragraph</p>'

print html # will produce: <p>paragraph</p>
 

stripped = strip_tags(html)
print stripped # will produce: paragraph

这也可以作为模板标签使用:

代码语言:javascript
复制
{{ somevalue|striptags }}

如果只想删除特定的标记,则需要使用removetags

代码语言:javascript
复制
from django.template.defaultfilters import removetags
html = '<strong>Bold...</strong><p>paragraph....</p>'
stripped = removetags(html, 'strong') # removes the strong only.
stripped2 = removetags(html, 'strong p') # removes the strong AND p tags.

在模板中也可用:

代码语言:javascript
复制
{{ value|removetags:"a span"|safe }}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6606866

复制
相关文章

相似问题

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