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

Django自定义模板函数

时间:2017-10-17 15:05:18      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:render   模板   配置   文件   pre   list   body   col   注册   

1.模板语言的帮助方法:

  {{ item.event_start|date:"Y-m-d H:i:s"}}    #转换日期
  {{ bio|truncatewords:"30" }}         #字符串切片
  {{ my_list|first|upper }}              #第一位  转换为大写
  {{ name|lower }}                #转换为小写

通过封装python的方法来实现其功能

示例:

views.py:

def simpletag(request):
    name=AKHFDAO
    return render(request,simpletag.html,{name:name})

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>{{ name }}</p>
    <p>{{ name|lower }}</p>
</body>
</html>

 

2.自定义simple_tag的步骤:

  一:定义simple_tag:

  (1)在app目录里创建templatetags目录(名字唯一)

  (2)在templatetags下创建任意py文件(xx.py)

  (3)创建templa对象 register

  (4)编写函数

from django import template

register=template.Library() #对象名必须为register
@register.simple_tag()
def funcname(a1,a2):
    return a1+a2

  二:使用simple_tag:

  (1)settings.py文件里注册app

INSTALLED_APPS

找到此列表,添加app名

  (2)在HTML文件的顶部load你的py文件(上面步骤2)

  (3)调用,使用{% 函数名 arg1 arg2 %} 

{% load xx %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>{% funcname "succ" "ess1" %}</p>
</body> </html>

 3.自定义filter的步骤:

  在上面的配置基础上:

@register.filter()
def funcname2(a1,a2):    #最多只能有两个参数
    return a1+a2

  HTML:

  {{ arg1|函数名:"arg2,arg3" }}   {{ arg1|函数名:数字 }} 

{% load xx %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>{{ ‘succ‘|funcname2:‘ess2‘ }}</p>
</body>
</html>

 

Django自定义模板函数

标签:render   模板   配置   文件   pre   list   body   col   注册   

原文地址:http://www.cnblogs.com/SunsetSunrise/p/7680491.html

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