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 True
wu01\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
母版