自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
Django指定的模板引擎在settings.py文件中定义,代码如下:
TEMPLATES = [{
模板引擎,默认为Django模板
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [], # 模板所在的目录
'APP_DIRS': True, # 是否启用APP目录
'OPTIONS': {
},
},
]
下面通过一个简单的例子,介绍如何使用模板,代码如下:
{% extends "base_generic.html" %}
{% block title %}{{ section.title }}{% endblock %}
{% block content %}
<h1>{{ section.title }}</h1>
{% for story in story_list %}
<h2>
<a href="{{ story.get_absolute_url }}">
{{ story.headline|upper }}
</a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}
Django模板引擎使用"{%%}"来描述Python语句区别于<HTML>标签,使用"{{}}"来描述Python变量。上面代码中的标签及说明如表7所示。
表7 Django模板引擎中的标签及说明
|--------------------------------------------|----------------------------------------------------------------------------------------|
| 标 签 | 说 明 |
| {% extends 'base_generic.html'%} | 扩展一个母模板 |
| {%block title%} | 指定母模板中的一段代码块,此处为title,在母模板中定义title代码块,可以在子模板中重写该代码块。block标签必须是封闭的,要由"{% endblock %}"结尾 |
| {{section.title}} | 获取变量的值 |
| {% for story in story_list %}、{% endfor %} | 和Python中的for循环用法相似,必须是封闭的 |
Django模板的过滤器非常实用,用来将返回的变量值做一些特殊处理,常用的过滤器如下:
l {{value|default:"nothing"}}:用来指定默认值。
l {{value|length}}:用来计算返回的列表或者字符串长度。
l {{value|filesizeformat}}:用来将数字转换成人类可读的文件大小,如:13KB,128MB等。
l {{value|truncatewords:30}}:获取返回的字符串的长度,此处为30个字符。
l {{value|lower}}:用于将返回的数据转换为小写字母。