在我的基本django模板内呈现静态html页面

在我的基本django模板内呈现静态html页面,html,django,apache,django-staticfiles,Html,Django,Apache,Django Staticfiles,我正在使用 -Django 1.2 -阿帕奇 -Mod WSGI 我有几个由apache提供服务的HTML文件 我希望在我的基本模板下呈现这些静态HTML页面,以便保持页眉/页脚和动态菜单的完整性 有一种方法我认为是使用iframes。另一种方法是在渲染时读取HTML文件并返回字符串,但在这种情况下,我失去了apache的优势,所以我想知道是否有更好的方法,django stuff是否提供了任何现有的解决方案?我不确定这是否正是您所要求的,但您可以插入HTML文件(或其他模板)在带有和标记的模板

我正在使用 -Django 1.2 -阿帕奇 -Mod WSGI

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

我希望在我的基本模板下呈现这些静态HTML页面,以便保持页眉/页脚和动态菜单的完整性


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

我不确定这是否正是您所要求的,但您可以插入HTML文件(或其他模板)在带有和标记的模板中,具体取决于您的需要:

{% ssi '/path/to/file.html' %}
{% include 'relative/path/to/template.html' %}
是的,它是

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

这很简单

{% include "templates/static_template_1.html" %}
或者,如果在视图侧创建变量:

{% include template_name_variable %}
它与基础模板(包括它们的模板)共享上下文。

编辑:

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

{% block content %}
    <h1>This is my subpage</h1>
{% endblock %}
也许你需要在模板系统之外加载html文件,那么我的方法就不够了

一个选项是扩展基础模板

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

例如:

base\u 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 %}
{% extends "base_template.html" %}

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

{%block content%}
此文本可以省略,否则将在此处未加载任何内容时显示
{%endblock%}
sub_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 %}
{% extends "base_template.html" %}

{% block content %}
    <h1>This is my subpage</h1>
{% endblock %}
{%extensed“base_template.html”%}
{%block content%}
这是我的子页面
{%endblock%}
您可以在此处阅读更多内容:


{%include%}打算插入另一个模板。shahjapan想插入静态文件。{%ssi%}更好,因为它在插入文件之前不解析文件。哎哟。我读了“html模板”,可能是因为我上次使用100%静态文件已经有一段时间了。是的,那么ssi更好了!@shahjapan保留我的答案以供参考,以防您必须使用模板文件而不是静态文件!