Django 模板语言
环境信息
- Python 3.11
- Django 4.1
使用方法
在 Django 4.1 中,使用静态文件的方法与之前的版本相同。以下是使用静态文件的步骤:
在
settings.py
中设置静态文件目录:settings.py STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]STATIC_URL
是静态文件 URL 的前缀。STATICFILES_DIRS
是一个列表,其中包含要在其中查找静态文件的目录。
在 HTML 文件中使用静态文件
{% load static %}
<html>
<head>
<title>My Static File Example</title>
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
<body>
<img src="{% static 'images/logo.png' %}" alt="My logo">
<script src="{% static 'js/script.js' %}"></script>
</body>
</html>在上面的示例中,我们使用了 Django 模板语言的
{% static %}
标记来引用静态文件。{% load static %}
指令必须在使用{% static %}
标记之前加载,以确保 Django 能够正确解析它们。运行
collectstatic
命令:
当您准备部署您的 Django 应用程序时,您需要将静态文件收集到一个单独的目录中,以便可以轻松地在生产服务器上提供它们。您可以使用 Django 的collectstatic
命令来完成此操作。在命令行中运行以下命令:python manage.py collectstatic
Django 将在
STATIC_ROOT
目录中创建一个新的静态文件目录,并将您的静态文件从STATICFILES_DIRS
中指定的目录复制到该目录中。您可以在settings.py
文件中设置STATIC_ROOT
目录的路径
DTL 语法
load static
block.super
用来从父 block 中继承选项
{% load static %} |
include
假设有两个 HTML 文件:header.html
和 content.html
。header.html
包含页面的头部内容。
<!-- header.html --> |
content.html
包含页面的主要内容。
<!-- content.html --> |
现在,可以在另一个 HTML 文件中使用 {% include %}
标签来包含这些内容。
<!-- main_template.html --> |
在这个示例中,{% include 'header.html' %}
和 {% include 'content.html' %}
标签会将相应的模板文件的内容包含在 main_template.html
中。这样,就可以在一个模板中包含另一个模板的内容了。
url 反向解析
在模板中不推荐使用 url 硬编码,建议使用 url 反向解析功能,在 urls.py
中定义 url 时,给 url 命名,在模板中 可以使用反向解析使用 url,避免使用 url 硬编码。需要在 urls.py
中配置 app_name = 'polls'
,否则会因为 namespace 不清楚而报错:'polls' is not a registered namespace
from django.urls import path |
以上事例中,name='index'
为 url 命名,在模板中通过以下方式使用 url 名称 [1]
<a href="{% url 'polls:index' %}">首页</a> |