📜  TurboGears-包含

📅  最后修改于: 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 {}

页眉和页脚HTML

在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以获取以下输出

页脚模板