Myluzh Blog

Django-HTML模板语法

发布时间: 2023-5-20 文章作者: myluzh 分类名称: Python 朗读文章


0x01 解释
本质上:在html中写一写占位符,后面由数据对这些占位符进行替换处理。
点击查看原图
0x02 views.py下面的tpl方法:
def tpl(request):
    # 单个变量
    name = "myluzh"
    # 列表
    roles = ["保安", "管理员", "大象"]
    # 字典
    user_info = {"name": "张三", "role": "CTO"}
    # 列表里面套字典
    user_list = [
        {"name": "李四", "role": "CFO"},
        {"name": "王五", "role": "UFO"},
    ]
    return render(request, "tpl.html", {"n1": name, "n2": roles, "n3": user_info, "n4": user_list}, )
0x03 模板文件tpl.html内容:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>对于单个变量的取值</h2>
    <p>输出n1变量:{{ n1 }}</p>

    <hr>
    <h2>对于列表的取值</h2>
    <p>输出n2列表里面单个值:{{ n2.1 }}</p>
    <p>输出整个n2列表:{{ n2 }}</p>
    <div>
        遍历n2下面的每个值
        {% for i in n2 %}
            <span>{{ i }}</span>
        {% endfor %}
    </div>

    <hr>
    <h2>对于字典的取值</h2>
    <p>输出n3里面的键对应的值:{{ n3.name }}</p>
    <p>输出n3{{ n3 }}</p>
    <div>
        遍历n3下面的每个键
        {% for i in n3.keys %}
            <span>{{ i }}</span>
        {% endfor %}
        <br>
        遍历n3下面的每个值
        {% for i in n3.values %}
            <span>{{ i }}</span>
        {% endfor %}
        <br>
        遍历n3下面的每个键值
        {% for k,v in n3.items %}
            <span>{{ k }},{{ v }}   </span>
        {% endfor %}
    </div>

    <hr>
    <h2>列表里面套字典的取值</h2>
    <p>先取列表0索引,再取下面的键值:{{ n4.0.name}}</p>
    遍历列表下每个字典的某个值
    {% for item in n4 %}
        <span>{{ item.name }}</span>
    {% endfor %}

    <hr>
    还可以支持条件语句,if判断n1
    {% if n1 == "myluzh" %}
        <p>yes myluzh!</p>
    {% else %}
        <p>no!</p>
    {% endif %}
</body>
</html>
0x04 最后效果:
tpl.png

标签: django

发表评论