TurboGears - Termasuk

Isi dari dokumen XML lain (terutama dokumen HTML) dapat dimasukkan dengan menggunakan tag inklusi di dokumen saat ini. Untuk mengaktifkan penyertaan seperti itu, ruang nama XInclude harus dideklarasikan di elemen akar dokumen HTML.

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

Deklarasi di atas menentukan bahwa termasuk direktif berisi ‘xi’awalan. Untuk menambahkan konten halaman html lain di dokumen saat ini, gunakan perintah xi: include sebagai berikut -

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

Dalam contoh berikut, root.py berisi include () controller, yang memperlihatkan include.html.

from hello.lib.base import BaseController
from tg import expose, request

class RootController(BaseController):
   @expose('hello.templates.include')
   def include(self):
      return {}

Heading dan Footer HTML

Dalam include.html, ruang nama include dideklarasikan dan konten heading.html dan footer.html ditambahkan. Berikut ini skrip HTML template \ include.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>

Berikut adalah template \ heading.html kode -

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

Berikut ini adalah templates \ footer.html

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

Mulai pengembangan menggunakan gearbox dan masuk http://localhost:8080/includedi browser. Output yang diberikan akan seperti yang ditunjukkan di bawah ini -

Dengan cara ini konstruksi tampilan modular dapat dicapai. Jika sumber daya yang disebutkan di xi: termasuk direktif tidak tersedia, kesalahan akan dimunculkan. Dalam kasus seperti itu, sumber daya alternatif dapat dimuat dengan menggunakan xi: fallback.

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

Pencantuman konten dapat dibuat dinamis sebagai atribut href yang dapat memuat ekspresi.

Tambahkan controller berikut di root.py.

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

Simpan kode berikut sebagai ref-include.html di folder template.

<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>

Sebelum memulai server, pastikan bahwa folder template memiliki heading.html, main.html dan footer.html. Memasukkanhttp://localhost:8082/refinclude di browser untuk mendapatkan keluaran berikut