在我的基础django模板中渲染静态html页面

时间:2013-01-03 13:33:03

标签: html django apache django-staticfiles

我正在使用开发门户网站   - Django 1.2   - 阿帕奇   - Mod WSGI

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

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

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

3 个答案:

答案 0 :(得分:6)

我不确定这是否正是您所要求的,但您可以在包含ssiinclude标签的模板中插入html文件(甚至是其他模板),根据您的需要:

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

答案 1 :(得分:1)

是的,这是include tag

  

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

就像

一样简单
{% include "templates/static_template_1.html" %}

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

{% include template_name_variable %}

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

答案 2 :(得分: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/