2013-01-03 148 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/