您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Django中Template如何使用
## 一、Template基础概念
Django的模板系统(Template)是MTV架构中的核心组件之一,负责将业务逻辑与表现层分离。模板本质上是一个包含特殊标记的文本文件,支持动态内容渲染。
### 1.1 模板文件存放位置
默认情况下,Django会在每个app的`templates/`目录下查找模板文件。建议采用以下结构:
myproject/ ├── myapp/ │ └── templates/ │ └── myapp/ # 推荐添加app名前缀防止命名冲突 │ └── index.html
### 1.2 配置模板路径
在`settings.py`中确保包含APP_DIRS设置:
```python
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True, # 启用app目录模板查找
'DIRS': [BASE_DIR / 'templates'], # 全局模板目录
}
]
使用双花括号输出变量:
<p>欢迎, {{ user.username }}!</p>
<p>当前时间: {{ now|date:"Y-m-d H:i" }}</p>
提供逻辑控制功能,用{% %}
包裹:
{% if user.is_authenticated %}
<a href="/logout/">登出</a>
{% else %}
<a href="/login/">登录</a>
{% endif %}
<ul>
{% for item in item_list %}
<li>{{ forloop.counter }}. {{ item.name }}</li>
{% empty %}
<li>暂无数据</li>
{% endfor %}
</ul>
通过管道符|
对变量进行处理:
{{ text|truncatechars:50 }} {# 截断字符 #}
{{ value|floatformat:2 }} {# 浮点数格式化 #}
{{ html_content|safe }} {# 关闭自动转义 #}
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}默认标题{% endblock %}</title>
</head>
<body>
<div class="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
{% extends "base.html" %}
{% block title %}子页面标题{% endblock %}
{% block content %}
<h1>这是主要内容区</h1>
{{ block.super }} {# 引用父模板内容 #}
{% endblock %}
{% include "widgets/sidebar.html" %}
templatetags/
包my_filters.py
):from django import template
register = template.Library()
@register.filter
def add_str(value, arg):
return f"{value}-{arg}"
{% load my_filters %}
{{ 'hello'|add_str:'world' }} {# 输出:hello-world #}
{% with %}
缓存复杂查询结果<pre>{{ debug|pprint }}</pre>
通过合理使用Django模板系统,可以构建出结构清晰、易于维护的前端界面,同时保持业务逻辑与表现层的良好分离。 “`
(注:实际字数为约650字,可根据需要扩展具体示例或添加更多高级用法)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。