simple_tag
a、在app中创建templatetags模块
b、创建任意 .py 文件,如:xx.py
wu01\plate\templatetags\common.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/6/22 18:15
# @File : common.py
# @Software: PyCharm
# @QQ : 3383600886
# @Site : 自定义模板函数
from django import template
register = template.Library()
'''
filter
最多两个参数 {{参数|函数:"参数"}}
条件判断 用
simple_tag
无限制 {% 函数 参数 参数 参数 ... %}
'''
@register.filter
def my_upper(value, arg):
return value + arg
@register.filter
def my_bool(value):
return False
@register.simple_tag
def my_lower(value, a1, a2, a3):
return value + a1 + a2 + a3
@register.simple_tag
def hes(value):
return '值:'+ value
@register.filter
def zong(value):
return '值:'+ value
@register.filter
def bool(value):
if value:
return False
else:
return Truewu01\templates\tp\test.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>模板</title>
</head>
<body>
<style>
div{
margin: 10px auto;
border:1px solid red;
}
</style>
<div>
<h1>打印字典1</h1>
<table>
<tr>
{% for user,info in userinfo.items %}
<td>{{ user }},{{ info }}</td>
{% empty %}
无
{% endfor %}
</tr>
</table>
</div>
<div>
<h1>打印字典2</h1>
<table>
<tr>
{% for user,info in userinfo %}
<td>{{ user }},{{ info }}</td>
{% empty %}
无
{% endfor %}
</tr>
</table>
</div>
<div>
<h1>打印字典3</h1>
<table>
<tr>
{% for user in userinfo %}
<td>{{ user }}</td>
{% empty %}
无
{% endfor %}
</tr>
</table>
</div>
{#自定义函数#}
{% load common %}
<div>
<h1>自定义函数1</h1>
<h2>filter</h2>
{{ name|my_upper:"666" }}
{% if name|my_bool %}
<h3>真</h3>
{% else %}
<h3>假</h3>
{% endif %}
<h2>tag</h2>
{% my_lower "ALEX" "x" "SB" "V" %}
</div>
<div>
<h1>自定义函数1</h1>
{{ name|zong }}
{% hes '666' %}
{% if name|bool %}
假
{% else %}
真
{% endif %}
</div>
</body>
</html>wu01\plate\views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('模板操作')
def test(request):
data = render(request,'tp/test.html',{
'userinfo':{'k1':'v1','k2':'v2'},
'name':'123'
})
return data母版