您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        # 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。