文章目录
模版配置
在setting.py
文加下配置
TEMPLATES = [
{
# Django默认模版引擎
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 模版文件
'DIRS': [
os.path.join(BASE_DIR, 'template')
],
},
]
常用语法
变量相关的用{{ 变量 }}
,逻辑相关的用{% 标签 %}
views
def template_test(request):
name = 'Tom'
age = 18
gender='男'
return render(request, 'template_test.html',locals())
html
<body>
{{name}}-{{age}}-{{gender}}
</body>
Filter 过滤器
default 默认值
{{ value|default:'默认值'}}
length 数据长度
{{ value|length }}
filesizeformat 文件大小
{{ value|filesizeformat}}
slice 切片
{{value|slice:'1:4'}}
date 格式化日期
{{time|date:'Y-m-d H:i:s'}}
safe 安全转义
{{tag|safe}}
truncatechars 多于指定数量显示省略号…
{{value|truncatechars:3}}
cut 移除指定字符串
{{value|cut:'m'}}
自定义filter
- 在app目录下新建
templatetags
目录(名字唯一) - 在
templatetags
下创建任意py’文件 - 创建
register
对象(名字唯一)
from django import template
register = template.Library() # 对象名必须为register
@register.filter(name='myjoin')
def my_join(arg, arg2):
return arg + '-' + arg2
- 在
settings.py
注册app
INSTALLED_APPS = [
...
'app.apps.AppConfig',
]
- 使用
{% load myfilter %}}
{{name|myjoin:'hello'}}
标签
for 循环
<ul>
{% for name in name_list%}
<li>{{name}}</li>
{% endfor %}
</ul>
for循环可用的一些参数
Variable | Description |
---|---|
forloop.counter | 当前循环的索引值(从1开始) |
forloop.counter0 | 当前循环的索引值(从0开始) |
forloop.revcounter | 当前循环的倒序索引值(从1开始) |
forloop.revcounter0 | 当前循环的倒序索引值(从0开始) |
forloop.first | 当前循环是不是第一次循环(布尔值) |
forloop.last | 当前循环是不是最后一次循环(布尔值) |
forloop.parentloop | 本层循环的外层循环 |
for … empty
<ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% empty %}
<li>空空如也</li>
{% endfor %}
</ul>
母版
子页面继承母版
{% extends 'base.html' %}
母版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}base{% endblock %}</title>
</head>
<body>
{% block header %}
{% endblock %}
{% block main %}
{% endblock %}
{% block footer %}
{% endblock %}
</body>
</html>
子页面
{% extends 'base.html' %}
{% block title %}
标题信息
{% endblock %}
{% block header %}
<h1>头部信息</h1>
{% endblock %}
{% block main %}
<p>正文</p>
{% endblock %}
{% block footer %}
<div>结尾</div>
{% endblock %}
加载静态文件
配置
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
<!--方式一-->
<img src="/static/img/hello.jpg"/>
{% load static %}
<!--方式二-->
<img src="{% static 'img/hello.jpg'%}">
<!--方式三-->
<img src="{% get_static_prefix %}img/hello.jpg"/>