189 8069 5689

Django自定义html标签-创新互联

自定义一个html标签

参考:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
    第一步:在 app下创建templatetags包,也就是本案例的bbs下创建templatetags包如下:
    bbs/templatetags/__init__.py
    bbs/templatetags/poll_extras.py


    第二步:编写poll_extras.py文件,编写成你需要的标签,下面编写的是,把数据转为大写字母


        from django import  template     ###必须应用template模块
        register = template.Library()

        @register.filter
        def test_tag(data):
            print 'tag:::  ' ,data
            return data.upper()


    第三步:在引用的html文件中使用
    {% load poll_extras %}



    第四步:在html中应用这个标签,如下: 把作者名称改为大写,它不能解析html内容
    {{ article.author.name|test_tag }}     ## 这中调用方式用于@register.filter装饰器,


    如果是@register.simple_tag这种装饰器就需要用下面的调用方法,且这中装饰器可以解析html格式
    {% test_tag2 article.author.name %}

网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站设计,高端网页制作,对成都墙体彩绘等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业seo优化优化,H5建站,响应式网站。
from django.utils.safestring import mark_safe
from django import  template     ###必须应用template模块
register = template.Library()

@register.filter
def test_tag(data):
    print 'tag:::  ' ,data
    return data.upper()


@register.simple_tag
def test_tag2(data):
    print 'tag:::  ' ,data
    #return data.upper()
    a = '

%s

' % data    ##@register.simple_tag可以解析html返回,,     return mark_safe(a)          ##在新版的django中,如果需要用@register.simple_tag解析html文本,需要额外添加 :     from django.utils.safestring import mark_safe     这个make_safe模块才可以        如果是@register.simple_tag这种装饰器就需要用下面的调用方法,且这中装饰器可以解析html格式     {% test_tag2 article.author.name %}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:Django自定义html标签-创新互联
本文来源:http://cdxtjz.com/article/dgiide.html

其他资讯