django之Template

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django之Template相关的知识,希望对你有一定的参考价值。

模板的组成

组成:HTML代码+逻辑控制代码

逻辑控制代码组成

1  变量(使用双大括号来引用变量):

语法格式:       {{var_name}}

深度变量的查找(万能的句点号)

在到目前为止的例子中,我们通过 context 传递的简单参数值主要是字符串,然而,模板系统能够非常简洁地处理更加复杂的数据结构,例如list、dictionary和自定义的对象。

在 Django 模板中遍历复杂数据结构的关键是句点字符 (.)。

变量的过滤器(filter)的使用

  # 1  add          :   给变量加上相应的值
   #
   # 2  addslashes   :    给变量中的引号前加上斜线
   #
   # 3  capfirst     :    首字母大写
   #
   # 4  cut          :   从字符串中移除指定的字符
   #
   # 5  date         :   格式化日期字符串                     (time :            格式化时间字符串)
    {{ value|date:‘H-m-d H:i:s‘ }}
   # 6 default : 如果值是False,就替换成设置的默认值,否则就是用本来的值

# 7 default_if_none: 如果值是None,就替换成设置的默认值,否则就使用本来的值 #实例: #value1="aBcDe" {{ value1|upper }}<br> #value2=5 {{ value2|add:3 }}<br> #value3=‘he llo wo r ld‘ {{ value3|cut: }}<br> #import datetime #value4=datetime.datetime.now() {{ value4|date:Y-m-d }}<br> #value5=[] {{ value5|default:空的 }}<br> #value6=‘<a href="#">跳转</a>‘ {{ value6 }} {% autoescape off %} {{ value6 }} {% endautoescape %} {{ value6|safe }}<br> {{ value6|striptags }} #value7=‘1234‘ {{ value7|filesizeformat }}<br> {{ value7|first }}<br> {{ value7|length }}<br> {{ value7|slice:":-1" }}<br> #value8=‘http://www.baidu.com/?a=1&b=3‘ {{ value8|urlencode }}<br>

2 标签(tag)(使用大括号和百分比的组合来表示使用tag)

语法格式:      {% tags %}

if

    {% if expression %}
        ...
    {% elif expression %}
        ...
    {% endif %}

for

{% for item in list %}
    <p>{{ forloop.counter0 }}</p>
{% endfor %}
#forloop.counter表示循环的次数,从1开始计数,第一次循环设为1
#forloop.counter0表示循环的次数,从0开始计数,第一次循环设为0
#forloop.revcounter表示循环的次数,从1开始计数,逆序
#forloop.revcounter0表示循环的次数,从0开始计数,逆序
#forloop.first {% if forloop.first %}
#forloop.last     {% if forloop.last %}

{% for item in list %}
{% if forloop.first %} #第一次循环时
<p>first</p>
{% elif forloop.last %} #最后一次循环时
<p>last</p>
{% else %}
<p>{{ forloop.counter }}</p>
{% endif %}
{% endfor %}

3 自定义filter和simple_tag

from django import template
from django.utils.safestring import mark_safe

register = template.Library()   #register的名字是固定的,不可改变


@register.filter
def filter_multi(v1,v2):
    return  v1 * v2


@register.simple_tag
def simple_tag_multi(v1,v2):
    return  v1 * v2


@register.simple_tag
def my_input(id,arg):
    result = "<input type=‘text‘ id=‘%s‘ class=‘%s‘ />" %(id,arg,)
    return mark_safe(result)

 

 

 

 

 

 

 

 

 

 

 

 

https://docs.djangoproject.com/en/1.11/ref/templates/builtins/

 

以上是关于django之Template的主要内容,如果未能解决你的问题,请参考以下文章

63django之模版层(template)

Django框架之模板层template的一些介绍和使用

Django之Template

微信小程序开发之--"template模板“的应用

Django之Template

django之Template(模板)