python 过滤html方法

本文介绍了一种在Django项目中处理HTML内容的方法,包括如何使用模板标签去除HTML标签、安全显示HTML内容、字符串切片及转义等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台函数处理:


from HTMLParser import HTMLParser
class MLStripper(HTMLParser):
    """
    过滤html方法
    """
    def __init__(self):
        self.reset()
        self.fed = []
    def handle_data(self, d):
        self.fed.append(d)
    def get_data(self):
        return ''.join(self.fed)

def strip_tags(html):
    """
    过滤html方法实现
    """
    if html is None:
        return ""
    s = MLStripper()
    s.feed(html)
    return s.get_data()


前端模板处理:


在做django项目是,在模版中经常会用到对从view 中返回的 内容做处理的情况

1. 需要去掉html 标签

2. 需要部分去掉html 标签

3. 需要原原本本显示HTML内容。

4. 需要对一些过长的内容进行截取,只显示一部分。

下面我用一个例子来总结下常用的情况,在views.py 中有如下方法:


 程序代码

def testrevomvetag(request):
    context={}
    context['info']="""<div>这是一号门博客<a href="http://www.yihaomen.com">一号门</a><br/><p>个人技术博客</p></div>'
                    '<img src="/static/images/0411331945561.jpg" />"""
    return render_to_response('removetag.html',context,context_instance=RequestContext(request))



准备一个模板:
程序代码 程序代码

测试striptags: {{info|striptags}}

测试removetags:{{info|removetags:"a br p"}}


测试safe:{{info|safe}}


测试slice切片: {{info|striptags|slice:"10"}}


测试 escape:{{info|escape}}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值