锋哥原创的Python Web开发 Django5视频教程:
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计32条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV14Z421z78C/Django 内置的模板引擎包含模板上下文(亦可称为模板变量)、标签和过滤器,各个功能说明如下:
-
模板上下文是以变量的形式写入模板文件里面,变量值由视图函数或视图类传递所得。
-
标签是对模板上下文进行控制输出,比如模板上下文的判断和循环控制等。
-
模板继承隶属于标签,它是将每个模板文件重复的代码抽取出来并写在一个共用的模板文件中,其他模板文件通过继承共用模板文件来实现完整的网页输出。
-
过滤器是对模板上下文进行操作处理,比如
模板上下文
模板上下文是模板中基本的组成单位,上下文的数据由视图函数或视图类传递。它以{{ variable }}表示,variable是上下文的名称,它支持 Python 所有的数据类型,如字典、列表、元组、字符串、整型或实例化对象等。上下文的数据格式不同,在模板里的使用方式也有所差异。
使用变量的一些注意点如下:
- 当模板引擎遇到一个变量,将计算这个变量,然后输出结果
- 变量名必须由字母、数字、下划线、点组成,不能由数字和下划线开头
- 当模板引擎遇到 “ . ” 的时候,按以下顺序进行解析
- 按照 dict 解析 var[key]
- 按照对象的属性或方法解析 var.var/func
- 按照索引解析 var[index]
- 如果变量不存在,不会引发异常,模板会插入空字符串 ''
- 在模板中使用变量或方法时,不能出现 ()、[]、{}
- 调用方法时,不能传递参数
我们通过一个实例来学习下:
views.py,index方法:
模板上下文的内容截取、替换或格式转换等。
# 定义人类
class Person:
# 属性 姓名
name = None
# 属性 年龄
age = None
def __init__(self, name, age):
self.name = name
self.age = age
def index(request):
str = "模板变量"
myDict = {"tom": '666', 'cat': '999', 'wzw': '333'}
# 创建一个对象 zhangsan
zhangsan = Person("张三", 21)
myList = ["java", "python", "c"]
myTuple = ("python", 222, 3.14, False)
content_value = {"msg": str, "msg2": myDict, "msg3": zhangsan, "msg4": myList, "msg5": myTuple}
return render(request, 'index.html', context=content_value)
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
字符串:{{ msg }}<br>
字典类型:{{ msg2.tom }},{{ msg2.cat }},{{ msg2.wzw }}<br>
对象:{{ msg3.name }},{{ msg3.age }}<br>
列表:{{ msg4.0 }},{{ msg4.1 }},{{ msg4.3 }},{{ msg4.2 }}<br>
元组:{{ msg5.0 }},{{ msg5.4 }},{{ msg5.1 }},{{ msg5.2 }},{{ msg5.3 }}
</body>
</html>
测试,浏览器输入:http://127.0.0.1:8000/index/