2013-01-03 101 views
0

里面我正在开发使用 门户网站 - Django的1.2 - 阿帕奇 - 国防部WSGI渲染静态的html页面我的基地Django的模板

我有哪些正在由阿帕奇担任多个HTML文件。

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

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

回答

6

我不知道这是否是你要求什么,但你可以在模板与ssiinclude代码中插入一个HTML文件(或甚至另一个模板),根据您的需要:

{% ssi '/path/to/file.html' %} 
{% include 'relative/path/to/template.html' %} 
0

是的,这是include tag

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

它的那样简单

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

,或者,如果您在视图中创建侧的变量:

{% include template_name_variable %} 

这股与基本模板的上下文(一个包括它们)

+1

{%include%}旨在插入其他模板。 shahjapan想要插入静态文件。 {%ssi%}更好,因为它在插入文件之前不解析文件。 –

+0

哎呦。我读了“html模板”,可能是因为自从我上次使用100%静态文件以来已经有一段时间了。是的,ssi更好! @shahjapan保留我的回答以供参考,以防万一您必须使用模板文件而不是静态文件! –

1

编辑:

也许你需要在模板系统之外加载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/