码迷,mamicode.com
首页 > 其他好文 > 详细

Django中创建自定义标签与过虑器

时间:2018-05-18 22:51:08      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:模板文件   自定义标签   .lib   date   系统   orm   doctype   roi   tle   

1.首先在app中创建templatetags目录(注意必须使用该名字,否则系统找不到自定义的标签),然后创建python文件common_extrgs.py.

common_extrgs.py:

from django import template

#创建template.Library()实例
register = template.Library()

#使用@register.filter()注册成自定义过滤器
@register.filter()
def mycut(value,arg):
return value.replace(arg,"---")
#
# register.filter(‘mycut‘,mycut)

from django.template.defaultfilters import stringfilter

#自定义过滤器,并使用stringfilter装饰器过滤成字符型
@register.filter
@stringfilter
def mylower(value):
return value.lower()

from datetime import datetime

#简单标签
@register.simple_tag(takes_context=True)
def current_time(context):
tm = context[‘format_string‘]
return datetime.now().strftime(tm)

#包含标签
@register.inclusion_tag(‘book/show_tag.html‘,takes_context=True)
def show_results(context):
tm = context[‘li‘]
tm2 = context[‘l2‘]
return {‘choices‘:tm + tm2}

#分配标签
@register.assignment_tag(takes_context=True)
def current_time1(context):
tm = context[‘format_string‘]
return datetime.now().strftime(tm)


2.包含标签中使用register.inclusion_tag把show_tag.html文件包含进来,
show_tag.html内容如下:
<ul>
{% for i in choices %}
<li>{{ i }}</li>
{% endfor %}
</ul>


3.模板文件中使用{% load common_extras %}把前面自定义的common_extras载入到模板文件中.
模板文件内容如下:

{% load common_extras %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% show_results %}
{{ ss|mycut:‘ ‘ }}<br>
{{ mm|mylower }}<br>
{% current_time %}<br>
{% current_time1 as ctime %}<br>
{% show_results %}<br>
{{ ctime }}
</body>
</html>

4.使用views.py文件中视图进行渲染
views.py:
def test(request):
return render(request,‘book/ss.html‘,{‘ss‘:‘THIS IS MY NAME‘,
‘mm‘:123,
‘format_string‘:‘%Y-%m-%d %H:%M:%P‘,
‘li‘:[‘python‘,‘java‘,‘c++‘],
‘l2‘:[‘c#‘,‘iso‘,‘android‘]
})
 


 

Django中创建自定义标签与过虑器

标签:模板文件   自定义标签   .lib   date   系统   orm   doctype   roi   tle   

原文地址:https://www.cnblogs.com/remoting-py/p/9058268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!