django html 标签,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 %}

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 %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值