变量名必须由字母、数字、下划线(不能以下划线开头)和点组成,语法如下:
{{ 变量 }}
模板变量可以使python的内建类型,也可以是对象。
def index(request):
context = {
‘name‘: ‘django‘,
‘my_list‘: [‘python‘, ‘java‘, ‘php‘, ‘c/c++‘],
‘my_dict‘: {
‘name‘: ‘python‘,
‘age‘: 20,
‘gender‘: ‘男‘,
}
}
return render(request, ‘index.html‘, context)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ name }}</h1>
<h1>{{ my_list }}</h1>
<h1>{{ my_list.0 }}</h1> <!-- 注意列表的取值方法 -->
<h1>{{ my_dict }}</h1>
<h1>{{ my_dict.name }}</h1> <!-- 注意字典的取值方法 -->
</body>
</html>
1)for循环:
{% for item in 列表 %}
{{forloop.counter}} <1-- 表示当前是第几次循环,从1开始 -->
{{forloop.counter0}} <!-- 表示当前是第几次循环,从0开始 -->
{% empty %}
列表为空或不存在时执行此逻辑
{% endfor %}
2)if条件:
{% if ... %}
逻辑1
{% elif ... %}
逻辑2
{% else %}
逻辑3
{% endif %}
比较运算符如下:
==
!=
<
>
<=
>=
布尔运算符如下:
and
or
not
注意:运算符左右两侧必须有空格。
{% if a == 1 %} # 正确
{% if a==1 %} # 错误
语法如下:
如果过滤器需要参数,则使用冒号:传递参数。
变量|过滤器:参数
列举几个如下:
default,默认值,如果变量不存在时则返回默认值。
data|default:‘默认值‘
date,日期,用于对日期类型的值进行字符串格式化,常用的格式化字符如下:
value|date:"Y年m月j日 H时i分s秒"
1)单行注释语法如下:
{#...#}
2)多行注释使用comment标签,语法如下:
{% comment %}
...
{% endcomment %}
block
,实现子模板对父模块内容的重写父模板
如果发现在多个模板中某些内容相同,那就可以使用block
标签把这段内容定义到父模板中。
{% block 块名称 %}
预留区域,可以编写默认内容,也可以没有默认内容
{% endblock %}
子模板
使用extends
标签继承父模板,写在子模板文件的第一行。
{% extends "父模板路径" %}
对有需要的block
进行重写:
可以使用 block.super
来包含父模板的块中定义的内容,如下
{% block 名称 %}
子模板的内容
{{ block.super }} 显示父模板中block的内容
{% endblock %}
原文:https://www.cnblogs.com/ls1997/p/10944206.html