Django之模板语言(一)

1.Django的模板语言(简而言之,字符串替换)

  1.目前为止已经学过的模板语言:

    1.{{ name }}  ------>变量

    2. for 循环:

      {% for i in book_list %}

        {{ forloop.counter }}

        {{ forloop.last }}

        {{ i }}

      {% endfor %} 

    3.if 判断:

      {% if 10 > 5%}

        要执行的操作

      {% else %}

        要执行的操作

      {% endif %}

    4.if 值 in 判断条件:

      {% if name in name_list %}

        要执行的操作

      {% endif % }

案例案例:   

url(r'^t_test/',views.template_test)
# Django 模板语言测试代码
def template_test(request):
    name = "小黑"
    age = 18
    name_list = [1, 2, 3, 4, 5, 6]
    name_dict = {"first_name": "小黑", "last_name": "小白"}
    p1 = Person("Person对象1", 20)
    p2 = Person("Person对象2", 25)
    p_list = [p1, p2]
    return render(
        request,
        't_test.html',
        {
            "name": name,
            "age1": age,
            "name_list": name_list,
            "name_dict": name_dict,
            "person1": p1,
            "person2": p2,
            "p_list": p_list
        }
    )
# 模板语言测试的类
class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def dream(self):
        return "{}在做梦".format(self.name)

    # 控制对象输出的格式
    def __str__(self):
        return "<Person Object:{}>".format(self.name)

    # python2中的方法
    def __unicode__(self):
        return "<Person Object:{}>".format(self.name)

案例前端:

<h1>这是模板语言测试的案例</h1>
{{ name }}
<hr>
{{ age1 }}
<hr>
{{ bucunzai }}
{{ bucunzai|default:"这个变量并没有传值,使用的是默认值" }}
<hr>
{{ name_list }} {#得到一个列表#}
<ul>
{% for name in name_list %}
<li>name</li>
{% endfor %}
</ul>
{{ name_list.0 }}

<hr>
{{ name_dict }}
{{ name_dict.first_name }} | {{ name_dict.last_name }}
<hr>
{{ person1 }}
{{ person1.name }} {{ person1.age}}
{{ person1.dream }}

<hr>
{{ p_list }}
{{ p_list.1.name }}

结果:

猜你喜欢

转载自www.cnblogs.com/cwj2019/p/11723830.html