terminate.jpg

首页

技术分享

Django 的自定义tag

terminate.jpg

Django 是python技术栈里面一个非常好用的快速框架。

django_template_tags

但是当一个web页非常复杂并且庞大的时候,就需要把页面切割开也就是模块化的方式来组织页面了。

django语法里面支持继承和include语法,这两个语法在常规的业务中都很好用,但是有时候,需要在一个页面上显示与本页面没有直接关系或没有丝毫关系,那么这两个方法就都不合适

这个时候django的自定义tag就很有用了,如上图,现在任意一个app目录下新建一个templatetags的模块,然后新建一个py文件,将自定义的标签注册到服务,代码大致如下:

from django.template import Library

register = Library()

@register.inclusion_tag('home/tags/recent_entries.html', takes_context=True)
def recent_entries(contextlimit=None):
blogs = BlogPage.objects.all()
context['blog_pages'] = blogs
return context

这时就能在html页面中使用这个标签了。

首先加载自定义标签

{% load home_tag %}

在需要显示改标签的位置直接插入就可以了

{% recent_ertires %}

Comments:

captcha