复习-django的三种返回方式
HttpResponse
render
redirect
了解这三个功能的导入位置
from django.shortcuts import HttpResponse, render, redirect
模板语言
主要作用在html文件上
- 模板的占位符号,可以接收后端的数据
- 循环遍历,可以遍历我们传递过来的列表或字典等
- 判断语句,可以对数据进行判断,可以有分支
占位符号
前端需要来一个占位符号
格式如下:
{{占位名称}}
例子
<table border="1">
<tr>
<td>{{ name }}</td>
<td>{{ age }}</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
后端往前端传递数据
主要通过视图函数处理
def apple(req):
import random
name_list = ["张三", "李四", "王五"]
name = random.choice(name_list)
return render(req,"apple.html", {"name":name, "age":random.randint(10,20)})
注意
后端传输的数据与前端模板中占位符号的对应关系
如果模板中有多的占位符
后端如果不传参数,就不显示
强化一下render函数
render(请求对象,模板的相对路径,可选的第三参数为字典)
参数一,请求对象,视图函数的第一个形参,
参数二,模板的相对路径,
参数三,是字典,键会对应上模板中占位符的名字,值会替代这个占位符
关注后端传递给模板的数据类型
传递字符串,整数
传递列表
后端代码
def apple(req):
import random
name_list = ["张三", "李四", "王五"]
# name = random.choice(name_list)
return render(req,"apple.html", {"name_list":name_list, "age":random.randint(10,20)})
前端代码
效果
传递字典
后端
def apple(req):
import random
name_list = ["张三", "李四", "王五"]
stu_info = {"name":"张三", "age":18}
# name = random.choice(name_list)
return render(req,"apple.html", {"stu_info":stu_info})
前端
传对象
后端:
def apple(req):
class Cat:
def __init__(self):
self.name = "cat"
self.age = 3
return render(req,"apple.html", {"mao":Cat()})
显示效果
传函数
循环遍历
模板的格 式
{% for 变量 in 容器 %}
{{ 变量 }}
{% endfor %}
小结模板语言
获取变量
{{ 变量名占位符名 }}
循环遍历
{% for 变量 in 容器 %}
{{ 变量 }}
{% endfor %}