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内容
    <a>{{ article.author.name|test_tag }}</a>     ## 这中调用方式用于@register.filter装饰器,

    如果是@register.simple_tag这种装饰器就需要用下面的调用方法,且这中装饰器可以解析html格式
    <a>{% test_tag2 article.author.name %}</a>
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 = ‘<h1>%s</h1>‘ % 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格式
    <a>{% test_tag2 article.author.name %}</a>
时间: 2024-10-11 17:50:54

Django 自定义html 标签的相关文章

Django 自定义模板标签和过滤器

1.创建一个模板库 使用模板过滤器的时候,直接把过滤器写在app里,例如:在app里新建一个templatetags的文件夹,这个目录应当和 models.py . views.py 等处于同一层次.例如: books/     __init__.py     models.py     templatetags/     views.py 在 templatetags 中创建两个空文件:一个 __init__.py (告诉Python这是一个包含了Python代码的包)和一个用来存放你自定义的

Django 自定义模版标签和过滤器

实现自定义过滤器 1. 创建register变量 在你的模块文件中,你必须首先创建一个全局register变量,它是用来注册你自定义标签和过滤器的, 你需要在你的python文件的开始处,插入几下代码: from django import templateregister = template.Library() 2. 定义过滤器函数 自定义的过滤器就是一个带1,2个参数的python函数,一个参数放变量值,一个用来放选项值. 比如{{ var|remove:"bar" }}, va

Django自定义模板标签和过滤器

inclusion_tag() 在app中新建一个templatetags包(名字固定,不能变,只能是这个), 和views.py.models.py等文件处于同一级别目录下. 这是一个包!不要忘记创建__init__.py文件以使得该目录可以作为Python的包 1.首先,编写Python函数,templatetags/my_tags.py from django import template register = template.Library() register = Library(

Django自定义模型(model)中的字段标签

方法一: 在编辑页面中,每个字段的标签都是从模块的字段名称生成的. 规则很简单: 用空格替换下划线:首字母大写.例如:Book模块中publication_date的标签是Publication date. 然而,字段名称并不总是贴切的.有些情况下,你可能想自定义一个标签. 你只需在模块中指定verbose_name. 举个例子,说明如何将Author.email的标签改为e-mail,中间有个横线. class Author(models.Model): first_name = models

django自定义标签

参考文章: http://xiao80xiao.iteye.com/blog/519394 (django 自定义标签和过滤器) http://www.cnblogs.com/btchenguang/archive/2012/09/05/2672364.html#WizKMOutline_1346841868165594 (Django框架学习-Templates进阶用法--下) 自定义标签放在app/templatetags下.下面是3个例子. 自定义标签1(过滤器): vim test_ta

Django 自定义过滤器和模板标签

前提:自定义模板标签和过滤器必须位于Django的某个应用中,这个应用可以包含一个templatetags目录, 和models.py views.py 处于同一级目录.若这个templatetags目录不存在则创建他,同时在该目录下建立一个py文件:__init__.py 文件,使得该目录可以作为Python包.在添加这个模块后,需要重启服务器以便使用.注意命名不要冲突.eg: polls/ __init__.py models.py templatetags/ 在模板中可以这样用:{% lo

django自定义过滤器及模板标签

创建一个模板库 不管是写自定义标签还是过滤器,第一件要做的事是创建模板库(Django能够导入的基本结构). 创建一个模板库分两步走: 第一,决定模板库应该放在哪个Django应用下. 如果你通过 manage.py startapp 创建了一个应用,你可以把它放在那里,或者你可以为模板库单独创建一个应用. 我们更推荐使用后者,因为你的filter可能在后来的工程中有用. 无论你采用何种方式,请确保把你的应用添加到 INSTALLED_APPS 中. 我们稍后会解释这一点. 第二,在适当的Dja

django “如何”系列4:如何编写自定义模板标签和过滤器

django的模板系统自带了一系列的内建标签和过滤器,一般情况下可以满足你的要求,如果觉得需更精准的模板标签或者过滤器,你可以自己编写模板标签和过滤器,然后使用{% load %}标签使用他们. 代码布局 自定义标签和过滤器必须依赖于一个django app,也就是说,自定义标签和过滤器是绑定app的.该app应该包含一个templatetags目录,这个目录一个和model.py,views.py在同一个层级,记得在该目录下建立一个__init__.py文件一遍django知道这是一个pyth

django 自定义标签和过滤器

django 自定义标签和过滤器 Django支持自定义标签和过滤器.起初还不太重视它这项功能,但最近试了试自定义标签.发现django这个功能实在是太爽了. 首先在你项目的一个app中建立一个python源文件夹,(即文件夹里面要包含一个__init__.py.)文件夹名为templatetags.  此文件夹便是存放自定义标签和过滤器的源码的地方了. 再如果是在templatetags文件夹中定义了标签,如 test_tags.py,要如何使用我们自定义的test_tags.py呢.很简单,