[模板]:模板中的变量
前面我们说了模板,它的主要作用 就是生成动态的html内容。 所以呢, 要生成动态的可以变化的东西, 我们就需要在模板中设置变量。
那么这个变量有哪些类型呢? 就是我们python中最常见的这些数据类型, 包括数字,字符串,列表元组,字典,集合以及对象等等。 接下来我们就举一些例子来实现一下模板中的变量, 我们以APP01中的这里的文章为例。
在URLs中我们先来设置路由。
demo/app01/urls.py
from . import views
urlpatterns = [
path('list/', views.list),
]
创建视图文件,代码如下:
demo/app01/views.py
def list(request):
author = 'andy'
article_number = 20
article_list = [
'第一篇文章: 什么是django',
'第二篇文章: django的mvt模式',
'第三片文章: django的视图'
]
info = {
'name': 'andy',
'age': 30,
'programming_language': ['python','java','c']
}
content = """
<ul>
<li class="rec_topics">
<a href="https://www.douban.com/gallery/topic/3338353/?from=hot_topic_anony_sns" class="rec_topics_name">回想高考后的漫漫长假</a>
<span class="rec_topics_subtitle">291.9万次浏览</span>
</li>
<li class="rec_topics">
<a href="https://www.douban.com/gallery/topic/3351426/?from=hot_topic_anony_sns" class="rec_topics_name">社畜入职满月交流会</a>
<span class="rec_topics_subtitle">57.1万次浏览</span>
</li>
<li class="rec_topics">
<a href="https://www.douban.com/gallery/topic/3353372/?from=hot_topic_anony_sns" class="rec_topics_name">《毁灭者亚巴顿》线上共读会</a>
<span class="rec_topics_subtitle">1.4万次浏览</span>
</li>
<li class="rec_topics">
<a href="https://www.douban.com/gallery/topic/3353174/?from=hot_topic_anony_sns" class="rec_topics_name">我对自己有个新发现</a>
<span class="rec_topics_subtitle">10.7万次浏览</span>
</li>
<li class="rec_topics">
<a href="https://www.douban.com/gallery/topic/3354110/?from=hot_topic_anony_sns" class="rec_topics_name">草履虫计划实践基地</a>
<span class="rec_topics_subtitle">新话题 · 768次浏览</span>
</li>
<li class="rec_topics">
<a href="https://www.douban.com/gallery/topic/3353775/?from=hot_topic_anony_sns" class="rec_topics_name">《酒吧长谈》线上共读会</a>
<span class="rec_topics_subtitle">新话题 · 1.3万次浏览</span>
</li>
</ul>
"""
return render(request,'list.html', {
'author': author,
'number': article_number,
'article_list': article_list,
'info': info,
'content': content
})
创建模板模板文件,显示变量信息。
demo/templates/list.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>文章列表</h1>
<h2>作者: {{ author }} 文章数量:{{ number }}</h2>
<ul>
<li>{{ article_list.0 }}</li>
<li>{{ article_list.1 }}</li>
<li>{{ article_list.2 }}</li>
</ul>
<p>{{ info.name|upper }} 年龄 {{ info.age}} 性别 {{ gender|default:'未知' }}</p>
<p>喜欢的编程语言:{{ info.programming_language}}</p>
</body>
</html>
代码解析
{{}}
用来解析变量。
变量的类型如果是列表,可以用.n
的形式获取下标是n的元素;
变量的类型如果是字典,可以用.key
的形式获取键值是key的值;