前置:
前端框架使用layui,请下载layui到static文件下。
模板的本质
我们在浏览器中所见到的本质,也就是源代码,本质是一个html文件。而模板就是对某些共性一致的html文件的抽象,以便我们能动态的生成html文件。这里要划重点的是动态两个字。
上下文变量
上下文变量是一个枢纽,它一端链接python中的变量,一端要实例化(渲染)成相应的字符串。而python到模板变量的传递,python提供了两种方式,一是直接把模板变量实例化成httpsponse对象,一种是通过render函数。模板变量的使用则通过{{ 变量名 }}。
先通过实例来说明。
将app01——->view.py的index改写成如下。
from django.shortcuts import render
from django.http import HttpResponse
def index(request, year=2020):
context = {'one': '生活笔记', 'two': '技术杂谈'}
return render(request, 'index.html', context)
在templates的路径下新建index.html。写入下面代码。
{% load static %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>开始使用layui</title>
<link rel="stylesheet" href="{% static 'layui/css/layui.css' %}">
</head>
<body>
<ul class="layui-nav" lay-filter="">
<li class="layui-nav-item"><a href="">{{ one }}</a></li>
<li class="layui-nav-item layui-this"><a href="">{{ two }}</a></li>
</ul>
<script src="{% static '/layui/layui.js' %}"></script>
</body>
</html>
标签
if/else标签
{% if condition %}
display
{% endif %}
for标签
for标签允许我们在一个序列上迭代。
{% for athlete in athlete_list %}
{{ athlete }}
{% endfor %}
给标签增加一个 reversed 使得该列表被反向迭代
{% for athlete in athlete_list reversed %}
...
{% endfor %}
ifequal/ifnotequal 标签
ifequal标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。
ifnoteqal标签反之。