模板渲染
一 . 语法
关于模板渲染只需要记住两种语法就可以:
- {{ }} # 里面写变量
- {% %} # 里面写与逻辑相关的,比如for循环
二 . 渲染
方式一
在views.py文件下导入 from django.template import Template, Context
def model(request):
# *********************************************
t = Template("<h1>My name is {{name}}<h1>") # 一小段html代码,加载到Template里,返回Template对象
context = { # 上下文字符串,准备渲染到模板里的变量
'name': 'hahaha'
}
c = Context(context) # 初始化一个对象
html = t.render(c) # 渲染模板
print(html)
# ********************
return render(request, 'model.html')
在model.html下写代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是模板</h1>
</body>
</html>
方式二
传入字典参数
def model(request):
# *********************************************
# t = Template("<h1>My name is {{name}}<h1>") # 一小段html代码,加载到Template里,返回Template对象
# context = { # 上下文字符串,准备渲染到模板里的变量
# 'name': 'hahaha'
# }
# c = Context(context) # 初始化一个对象
# html = t.render(c) # 渲染模板
# print(html)
# ********************
context = {
'name': '小李',
'age': 18,
'sex': '女'
}
return render(request, 'model.html', context)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是模板</h1>
{{ name }}
{{ age }}
{{ sex }}
</body>
</html>
方式三
调用列表,元组,字典,类的属性及方法
方式四
if判断以及for循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是模板</h1>
{{ name }}
{{ age }}
{{ sex }}
<hr>
<!--调用列表-->
{{ learn.0 }}
{{ learn.1 }}
<!--for循环-->
<hr>
<ul>
{% for foo in learn %}
<li>{{ foo }}</li>
{% endfor %}
</ul>
</body>
</html>