Django框架之模板语言特殊标记(将后端的数据显示到前端)

后端代码

def GetMain(request):
    return render(
        request,
        "main.html",
        {
            "user1":"张三",
            "user2":"李四",
            "namelist":[
                "tom","tony","jerry"
            ],
            "citydict":{"city":"北京","area":"20万平方公里"},
            "person":[
                {"name":"老王","age":33,"sex":""},
                {"name":"老李","age":44,"sex":""}
            ]
        }
                  )

代码中user1,user2代表单个数据

namelist代表列表

citydict代表字典

person代表列表中的字典

将后端数据传递到前端显示出来,在后端应使用render这个函数,其中第一个参数是请求对象,第二个参数是渲染模板,将数据显示到这个模板中,第三个参数是以字典的形式进行传递。

特殊标记

(1){{变量名称}}  :变量名称作为替换符,替换后端传递过来的值,如:例子中后端的字典里user1作为key值,"张三"作为value值,而key值是不可变量,value值是动态数据,在前端中的{{}}中写上user1变量,当模板通过jinja2模板渲染的时候,就将user1替换成value值显示到前端,也就是显示了"张三"的数据

(2){% 代码块%} :通过这个标识符显示代码块。如:for语句循环,if语句等使用

前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
1.显示单个数据:==========<br/>
{{ user1 }},{{ user2 }}<br/>
2.显示列表中单个数据:===========<br/>
{{ namelist.0 }}---{{ namelist.1 }}<br/>
3.显示字典中的单个数据:===========<br/>
{{ citydict.city }}---{{ citydict.area }}<br/>
4.显示列表中所有的数据:============<br/>
{% for name in namelist %}
    {{ name }}
{% endfor %}<br/>

4.显示列表中的字典数据:===========<br/>
<table border="1">
    <tr>
        <td>姓名</td>
        <td>名字</td>
        <td>性别</td>
    </tr>
    {% for row in person %}
    <tr>
        <td>{{ row.name }}</td>
        <td>{{ row.age }}</td>
        <td>{{ row.sex }}</td>
    </tr>
    {% endfor %}
</table>

</body>
</html>

可以通过上面的例子,可以了解单个数据,列表,字典的显示数据的实现

结果:

猜你喜欢

转载自www.cnblogs.com/fjiqiang/p/10853126.html