首先创建一个模板文件夹
其次配置模板文件夹路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]
# djangoProject/hello_django/hello_django/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
视图文件中编写函数视图
# djangoProject/hello_django/hello_apps/views.py
def variable(request):
var = '我是变量'
return render(request, 'variable.html', {'var': var})
html文件引用接口返回值
# djangoProject/hello_django/templates/variable.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>{{ var }}</h1>
</body>
</html>
urls文件中配置访问路径
# djangoProject/hello_django/hello_django/urls.py
urlpatterns = [
path('variable/', views.variable),
]
访问页面
变量
- {{ var }} 引用变量
def variable(request):
var = '我是变量'
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>{{ var }}</h1>
</body>
</html>
- {{ var.0 }} 列表取值
def variable(request):
var = ['我是列表']
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>{{ var.0 }}</h1>
</body>
</html>
利用下标取值,需要注意的是这边是 “ . ” 取值,取整个列表就直接 var 即可;元祖取值和列表一样。
- {{ var.var }} 字典取值
def variable(request):
var = {'var': '我是字典'}
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>{{ var.var }}</h1>
</body>
</html>
标签
- 列表循环:{% for x in xx %}......{% endfor %}
def variable(request):
var = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
{% for i in var %}
{{ i }}
{% endfor %}
</body>
</html>
- 字典循环:{% for x in xx.items %}......{% endfor %}
def variable_dict(request):
var_dict = {'var1': 1, 'var2': 2, 'var3': 3, 'var4': 4}
return render(request, 'variableCopy.html', {'var_dict': var_dict})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>
{% for k, y in var_dict.items %}
<ul>字典key:{{ k }};字典value:{{ y }}</ul>
{% endfor %}
</h1>
</body>
</html>
模板中也可以像python的字典那样 var_dict.values,var_dict.key,var_dict.items 去循环取值 。
- {{ forloop }} 获取循环的序号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>
{% for i in var %}
{{ forloop.counter }} 顺序获取循环序号
{{ forloop.counter0 }} 顺序获取循环序号,从0开始计算
{{ forloop.revcounter }} 倒叙获取循环序号
{{ forloop.revcounter0 }} 倒叙获取循环序号,结尾从0开始计算
{{ forloop.first }} 第一条数据返回True, 其他为False
{{ forloop.last }} 最后一条数据返回Ture, 其他为False
{% endfor %}
</h1>
</body>
</html>
- {% if 条件 %}......{% else %}......{% endif %}
def variable(request):
var = random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2)
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>
{% if var.0 == 1 %}
NO.1
{% else %}
NO.0
{% endif %}
</h1>
</body>
</html>
- {% if 条件 %}......{% elif %}......{% else %}......{% endif %}
def variable(request):
var = random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2)
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>
{% if var.0 == 1 %}
NO.1
{% elif var.1 == 2 %}
NO.2
{% elif var.2 == 3 %}
No.3
{% else %}
NO.4
{% endif %}
</h1>
</body>
</html>
- {% empty %} 判断为空
def variable(request):
var = []
return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试页面显示</title>
</head>
<body>
<h1>
{% for i in var %}
{{ i }}
{% empty %}
NULL~~~~
{% endfor %}
</h1>
</body>
</html>
过滤器
default
如果一个变量为 false 或空,使用给定的默认值。否则,使用变量的值。例如:
def variable(request):
var = False
return render(request, 'variable.html', {'var': var})
{{ var|default:"我是默认值" }}
length
返回值的长度。这对字符串和列表都有效。例如:
def variable(request):
var = []
return render(request, 'variable.html', {'var': var})
{{ var|length }}
filesizeformat
文件大小格式化为该值(即 '20 KB'、'4.1 MB'、'102 bytes' 等)。例如:
def variable(request):
var = 2048
return render(request, 'variable.html', {'var': var})
{{ var|filesizeformat }}
date
根据给定格式对一个日期变量进行格式化。
def variable(request):
var = datetime.datetime.now()
return render(request, 'variable.html', {'var': var})
{{ var|date:"Y-m-d" }}
truncatechars
截断的字符串将以 ... 结尾
def variable(request):
var = '我很好的很好得很哈'
return render(request, 'variable.html', {'var': var})
{{ var|truncatechars:5 }}
以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,评论区留言会及时修正发布,谢谢!
未完,待续…
一直都在努力,希望您也是!