◆ 视图返回信息:
render(request, "模板的文件的路径", {'obj': 1234, 'k1': [1,2,3,4],"k2": {'name': '张扬','age': 73}})
◆ 语言格式:
1、返回单个变量
视图函数:
k1 = "abc"
return render(request,"index.html",{'k1':k1})
页面获取:
<h1> {{ obj }} </h1> #返回值abc
2、返回数组
视图函数:
k1 = ["a","b","c"]
return render(request,"index.html",{'k1':k1})
页面获取:
(1)获取单个值
<h1> {{ k1.1 }} </h1> #返回值b
(2)循环获取
{% for i in k1 %}
<p> {{ i }} </p>
{% endfor %}
3、返回字典
视图函数:
k1 = {"a":"aaa","b":"bbb","c":"ccc"}
return render(request,"index.html",{'k1':k1})
页面获取:
(1)获取单个键的值
<p>{{ k1.a }}</p> #返回值aaa
(2)获取所有键
{% for row in k1.keys %}
{{ row }}
{% endfor %}
(3)获取所有值
{% for row in k1.values%}
{{ row }}
{% endfor %}
(4)获取所有键值对
{% for k,v in k1.items %}
{{ k }} - {{v}}
{% endfor %}
◆ 模板继承:
1、extend模板继承:
- 一个文件中只能继承一个模板
- extend继承模板中的所有内容,模板的内容包括:html的head和body
- block关键字是定义父模板中哪些内容需要重新,定义block块时,必须给block块命名
- 在子模板中,子模板会根据blcok的块名重写父文件中定义的block块部分
- 在子文件中如果使用block块名,子文件默认继承父文件中的block中的内容
{#父模板#}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %} {% endblock %}</title>
<link rel="stylesheet" href="/static/commons.css" />
<style>
.pg-header{
height: 50px;
background-color: seashell;
color: green;
}
</style>
{% block css %} {% endblock %}
</head>
<body>
<div class="template">母版页</div>
<div>
{% block content %}{% endblock %}
</div>
</body>
</html>
子模板:
{% extends 'master.html' %}
{% block title %}子模板{% endblock %}
{% block content %}
<h1>子模板</h1>
{% endblock %}
{% block css %}
<style></style>
{% endblock %}
{% block js %}
<script></script>
{% endblock %}
2、include模板继承:
- include关键字是让子文件的继承局部的内容,父文件只需要写一个公用的模板
- include继承的父文件内容只是body中的具体某个或者多个标签。
- 在一个文件中可以有多了include,但是只能有一个extend
<!DOCTYPE html>
<head>
</head>
<body>
{% include '模板.html' %}
</body>
</html>
{#include模板#}
<div>include模板继承</div>