TurboGears-포함 사항

현재 문서에서 포함 태그를 사용하여 다른 XML 문서 (특히 HTML 문서)의 내용을 포함 할 수 있습니다. 이러한 포함을 활성화하려면 XInclude 네임 스페이스를 HTML 문서의 루트 요소에 선언해야합니다.

<html xmlns = "http://www.w3.org/1999/xhtml" xmlns:xi = "http://www.w3.org/2001/XInclude >

위의 선언은 include 지시문이 ‘xi’접두사. 현재 문서에 다른 html 페이지의 내용을 추가하려면 다음과 같이 xi : include 지시문을 사용하십시오.

<xi:include href = "somepage.html" />

다음 예제에서 root.py는 include.html을 노출하는 include () 컨트롤러를 포함합니다.

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의 내용이 추가됩니다. 다음은 templates \ include.html의 HTML 스크립트입니다.

<html xmlns = "http://www.w3.org/1999/xhtml" 
   xmlns:xi = "http://www.w3.org/2001/XInclude">
	
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <xi:include href = "heading.html" />
      <h2>main content </h2>
      <xi:include href = "footer.html" />
   </body>
	
</html>

다음은 templates \ heading.html 코드입니다.

<html>
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <h1>This is page Header</h1>
   </body>
</html>

다음은 templates \ footer.html입니다.

<html>
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <h3>This is page footer</h3>
   </body>
</html>

기어 박스를 사용하여 개발을 시작하고 http://localhost:8080/include브라우저에서. 렌더링 된 출력은 다음과 같습니다.

이러한 방식으로 뷰의 모듈 식 구성을 달성 할 수 있습니다. xi : include 지시문에 언급 된 리소스를 사용할 수없는 경우 오류가 발생합니다. 이러한 경우 xi : fallback을 사용하여 대체 리소스를로드 할 수 있습니다.

<xi:include href = “main.html”>
   <xi:fallback href = ”default.html”/>
</xi.include>

컨텐츠 포함은 표현식을 포함 할 수있는 href 속성으로 동적으로 만들 수 있습니다.

root.py에 다음 컨트롤러를 추가하십시오.

@expose('hello.templates.ref-include')
   def refinclude(self):
      return {'pages':['heading','main','footer']}

다음 코드를 템플릿 폴더에 ref-include.html로 저장합니다.

<html xmlns = "http://www.w3.org/1999/xhtml"
   xmlns:py = "http://genshi.edgewall.org/"
   xmlns:xi = "http://www.w3.org/2001/XInclude">
	
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <xi:include href = "${name}.html" py:for = "name in pages" />
   </body>
	
</html>

서버를 시작하기 전에 템플릿 폴더에 heading.html, main.html 및 footer.html이 있는지 확인하십시오. 시작하다http://localhost:8082/refinclude 브라우저에서 다음 출력을 얻습니다.