Google App Engine(Python) - 网站片段 - 复合视图

时间:2012-04-29 11:08:13

标签: python html django google-app-engine

有没有办法构建一个站点的三个或四个部分(三个或四个html模板),然后在GAE python中将它们中的一些或全部一起渲染?我知道我可以加载并呈现一个特定的html django模板,但我想在不同的文件中为网站的不同部分构建模板,然后根据情况将它们组合在一起。

一个很好的例子是我在大多数Web应用程序页面中都需要相同的菜单,页眉,页脚,但我想切换内容的特定部分。 所以我想有一个文件和模板来处理让我们说类和另一个处理学生的文件,所以网站的一般外观(main.html)保持不变,但我显示和处理有关学生的信息或课程完全不同。我基本上想要将一堆特定于页面的html植入一个通用模板中。 感谢您的帮助。 :)

我不确定我正在寻找什么是正确的技术术语(我试过搜索)。 =>我认为他们称之为Zend框架中的复合视图或网站片段。

1 个答案:

答案 0 :(得分:6)

你应该在Django中使用模板继承。看看this tutorial的开始。

编辑官方Django Book section on Template Inheritance也展示了不同的'片段',例如页脚或导航栏可以存储在不同的模板文件中,并通过包含和继承汇集在一起​​。

此站点显示了一个模板如何从另一个模板继承,例如,当网站部分模板扩展基本布局模板时,使用代码,例如,

{% extends "base.html" %}

它还显示了如何使用模板包含,例如,可以将不同的片段添加到较大的模板中,如拼图中的片段。例如,可以使用短语

将导航片段添加到布局文件中
{% include "nav.html" %}

如@Nick Johnson的评论中所述:extends更紧凑,可以不必使用多个文件片段。只有include作为最后的手段,如果extends失败了。

编辑另请参阅我对"How to cut large HTML file into multiple HTML files"

上的问题的回答