3

我正在使用 - Django 1.2 - Apache - Mod WSGI 开发一个门户网站

我有几个由 apache 提供的 HTML 文件。

我想在我的基本模板下呈现这些静态 HTML 页面,以保持我的页眉/页脚和动态菜单完好无损。

我可以认为它使用 iframe 的一种方式。另一种方法是在渲染时读取 HTML 文件并返回字符串,但在这种情况下,我失去了 apache 的优势,所以我想知道是否有更好的方法,django 的东西是否提供了任何现有的解决方案?

4

3 回答 3

7

我不确定这是否正是您所要求的,但是您可以根据需要在带有ssiand标签的模板中插入一个 html 文件(甚至是另一个模板):include

{% ssi '/path/to/file.html' %}
{% include 'relative/path/to/template.html' %}
于 2013-01-03T13:42:07.583 回答
2

编辑:

也许您需要在模板系统之外加载 html 文件。那我的方法就不行了。

一个选项是扩展您的基本模板。

您的基本模板不应该知道子模板,因为这在逻辑上是错误的。

例子:

base_template.html:

<html>
<div id='header'></div>
{% block content %}
    This text can be left out else it it will shown when nothing is loaded here
{% endblock %}

sub_template.html:

{% extends "base_template.html" %}

{% block content %}
    <h1>This is my subpage</h1>
{% endblock %}

你可以在这里阅读更多:

https://docs.djangoproject.com/en/1.2/topics/templates/

于 2013-01-03T14:10:49.700 回答
2

是的,这是包含标签

加载模板并使用当前上下文呈现它。这是在模板中“包含”其他模板的一种方式。

很简单

{% include "templates/static_template_1.html" %}

或者,如果您在视图端创建一个变量:

{% include template_name_variable %}

它与基本模板(包括它们的模板)共享上下文

于 2013-01-03T13:42:13.937 回答