我想知道是否有人可以帮助我找出解决以下问题的最佳方法。我正在构建一个使用 Django 模板来构建其 Web UI 组件的 Web 应用程序。有许多常见的 HTML 元素,例如页眉/页脚、HTML 标题、标头等。我想对这些进行一次编码,然后将它们与代表核心应用程序功能的其他模板“包含/组合”。
这可能使用 Django 模板吗?如果是这样,我该怎么做呢?
我想知道是否有人可以帮助我找出解决以下问题的最佳方法。我正在构建一个使用 Django 模板来构建其 Web UI 组件的 Web 应用程序。有许多常见的 HTML 元素,例如页眉/页脚、HTML 标题、标头等。我想对这些进行一次编码,然后将它们与代表核心应用程序功能的其他模板“包含/组合”。
这可能使用 Django 模板吗?如果是这样,我该怎么做呢?
您可以使用 django 的extends
标签。假设您有页眉和页脚。你可以制作一个模板,比如说,foo.django:
<h1>My HTML Header</h1>
<!-- an so on -->
{% block content %}
{% endblock %}
<!-- html footer -->
然后,您可以制作另一个模板,例如 bar.django:
{% extends "foo.django" %}
{% block content %}
This overrides the content block in foo.django.
{% endblock %}
...然后将呈现:
<h1>My HTML Header</h1>
<!-- an so on -->
This overrides the content block in foo.django.
<!-- html footer -->
在http://www.djangobook.com/en/1.0/chapter04/上有关于 django 模板的很好的说明。
{% extends %}
和{% include %}
方法适用于在上下文中不需要额外信息的页面元素。
只要您需要将更多内容从数据库中插入到上下文中,模板标签就会派上用场。例如,Django 包含的contrib.comments
应用程序{% get_comment_list %}
定义了一个模板标签,用于检索附加到给定模型实例的注释。以下是您将如何使用它:
<div>
{% load comments %}
{% get_comment_list for my_instance as comment_list %}
{% for comment in comment_list %}
<p><a href="{{ comment.url }}">{{ comment.name }}</a> wrote:</p>
{{ comment.comment }}
{% endfor %}
</div>
您可以将其保存在单独的模板中,并将{% include %}
其保存在其他模板中。
对于您自己的内容,您可以编写自己的自定义模板标签。按照文档。只要有可能,使用简单标签机制编写标签会很方便。您可以在djangosnippets.org和blogosphere上找到方便的现成模板标签。
试试{% include %}
标签。
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#include