zoukankan      html  css  js  c++  java
  • Django自定义模板函数

    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>
  • 相关阅读:
    Mongoexport导出数据,Mongoimport导入数据,mongodump备份数据,mongorestore恢复恢复
    php7中使用mongodb的驱动
    windows(X64)+apche2.4+php7.2下安装mongodb
    windows(X64)下安装apche2.4+php7.2+mysql5.7
    Django2.0 path与Django1.x版本url正则匹配问题
    Django: ImportError: No module named 'corsheaders'
    linux开启端口
    MySQL 存储过程传参数实现where id in(1,2,3,...)示例
    ubuntu安装pip3
    在Ubuntu 16.04 安装python3.6 环境并设置为默认
  • 原文地址:https://www.cnblogs.com/SunsetSunrise/p/7680491.html
Copyright © 2011-2022 走看看