标签:模板文件 自定义标签 .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‘]
})
标签:模板文件 自定义标签 .lib date 系统 orm doctype roi tle
原文地址:https://www.cnblogs.com/remoting-py/p/9058268.html