📅  最后修改于: 2020-10-19 03:29:23             🧑  作者: Mango
可以通过在当前文档中使用包含标签来包含另一个XML文档(尤其是HTML文档)的内容。为了启用这种包含,必须在HTML文档的根元素中声明XInclude名称空间。
上面的声明指定include指令包含‘xi’前缀。要在当前文档中添加另一个html页面的内容,请使用xi:include指令,如下所示:
在下面的示例中,root.py包含include()控制器,该控制器公开include.html。
from hello.lib.base import BaseController
from tg import expose, request
class RootController(BaseController):
@expose('hello.templates.include')
def include(self):
return {}
在include.html中,声明了include名称空间,并添加了heading.html和footer.html的内容。这是template \ include.html的HTML脚本-
TurboGears Templating Example
main content
这是templates \ heading.html代码-
TurboGears Templating Example
This is page Header
以下是templates \ footer.html
TurboGears Templating Example
This is page footer
使用齿轮箱启动开发,然后在浏览器中输入http:// localhost:8080 / include 。呈现的输出将如下所示-
这样,可以实现视图的模块化构造。如果xi:include指令中提到的资源不可用,将引发错误。在这种情况下,可以使用xi:fallback加载替代资源。
可以使内容包含动态,使其成为可以包含表达式的href属性。
在root.py中添加以下控制器。
@expose('hello.templates.ref-include')
def refinclude(self):
return {'pages':['heading','main','footer']}
将以下代码另存为template-文件夹中的ref-include.html。
TurboGears Templating Example
在启动服务器之前,请确保模板文件夹具有heading.html,main.html和footer.html。在浏览器中输入http:// localhost:8082 / refinclude以获取以下输出