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

pep*_*dip 0 html python django google-app-engine

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

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

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

gau*_*den 6

您应该在Django中使用模板继承.看一下本教程的开始.

编辑关于模板继承的官方Django Book部分还演示了不同的"片段"(例如页脚或导航栏)如何存储在不同的模板文件中,并通过包含和继承汇集在一起​​.

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

{% extends "base.html" %}
Run Code Online (Sandbox Code Playgroud)

它还显示了如何使用模板包含,例如,可以将不同的片段添加到更大的模板中,如拼图中的片段.例如,可以使用短语将导航片段添加到布局文件中

{% include "nav.html" %}
Run Code Online (Sandbox Code Playgroud)

正如@Nick Johnson的评论中所指出的那样:extends更紧凑,可以不必使用多个文件片段.只有include最后的手段,如果extends你失败了.

编辑另请参阅我对"如何将大型HTML文件剪切成多个HTML文件"的问题的答案