面向對象的Web 服務器Zope (2)_Windows教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
三、內容管理
Zope 的心臟就是 DTML (文檔模板標記語言),這個功能強大的變量插入和表達語言,提供對 Zope 對象的安全腳本和動態(tài)內容產(chǎn)生。 DTML 采用了服務器端包含腳本的語法,對很多 Web 開發(fā)人員來說很容易上手,而且和Zope 的安全模型高度集成。對安全的集成,可以讓用戶使用自己的 DTML 而不會對整個網(wǎng)站的安全構成威脅。
DTML 基本的變量插入和條件測試語句是十分直觀的。DTML 代碼采用 Zope 系統(tǒng)中對象的屬性和方法,也可使用 Web 請求和表單中的變量。下面是一個文檔標題屬性顯示的例子,當不同的用戶登錄時,顯示不同的信息:
--------------------------------------------------------------------------------
本文檔的標題為:<!--#var document_title--> 。
<P>
<!--#if "AUTHENTICATED_USER=='小地主'"-->
嘿!你好,小地主!
<!--#else-->
嘿!你好,陌生人!
<!--#/if-->
--------------------------------------------------------------------------------
當然 DTML 文檔能包含其他 DTML 文檔。一個常用的設計就是頁面頭和腳的包含:
--------------------------------------------------------------------------------
<!--#var standard_html_header-->
<H2>歡迎來到 www.FreeLAMP.com!</H2>
<!--#var standard_html_footer-->
--------------------------------------------------------------------------------
DTML 采用 #in 標記提供強大的遞歸插入。這個標記也可以用來自動管理批處理。下面的例子調用 SQL 查詢對象,遞歸調用結果集數(shù)據(jù)建立表格:
--------------------------------------------------------------------------------
<TABLE>
<!--#in getEmployees-->
<TBODY><TR>
<TD><!--#var first_name--></TD>
<TD><!--#var last_name--></TD>
<TD><!--#var job_title--></TD>
<TD><!--#var hire_date--></TD>
</TR>
<!--#/in-->
</TBODY></TABLE>
--------------------------------------------------------------------------------
采用這些標記和其他更加高級的 DTML 結構,Web 開發(fā)人員能調用 SQL 查詢語句,建立新的對象,操作對象屬性,建立高度動態(tài)的網(wǎng)站內容。下面的例子采用了 DTML的 sendmail 標記來發(fā)送 Email。
--------------------------------------------------------------------------------
<!--#var standard_html_header-->
<!--#sendmail smtphost="mail.freelamp.com">
To: Feedback Department <[email protected]>
From: Feedback Form <[email protected]>
Subject: 用戶意見反饋
<!--#var name-->提出意見:
<!--#var comments-->
<!--#/sendmail-->
<H2>謝謝!</H2>
<P>
感謝您的建議!
<!--#var standard_html_footer-->
--------------------------------------------------------------------------------
“安全腳本”的重要概念就是不像其他模板系統(tǒng), DTML 不允許你建立任意的腳本對而構成對系統(tǒng)安全的威脅。相反,Zope 提供了一種不同的對象叫作外置方法,封裝更加復雜的腳本和包含隨意的代碼。 DTML 的作者能調用外置方法,但是只能在自己的安全設定范圍內運行。
大多數(shù)情況下, DTML 本身就能完成大多數(shù)一般性的任務,Zope 提供高級標記的目的就是為了減少編寫復雜腳本的需要�!皌ree” 標記就是這樣的例子,這個標記能提供和Zope 管理界面左邊的幀一樣的界面。
Zope 的心臟就是 DTML (文檔模板標記語言),這個功能強大的變量插入和表達語言,提供對 Zope 對象的安全腳本和動態(tài)內容產(chǎn)生。 DTML 采用了服務器端包含腳本的語法,對很多 Web 開發(fā)人員來說很容易上手,而且和Zope 的安全模型高度集成。對安全的集成,可以讓用戶使用自己的 DTML 而不會對整個網(wǎng)站的安全構成威脅。
DTML 基本的變量插入和條件測試語句是十分直觀的。DTML 代碼采用 Zope 系統(tǒng)中對象的屬性和方法,也可使用 Web 請求和表單中的變量。下面是一個文檔標題屬性顯示的例子,當不同的用戶登錄時,顯示不同的信息:
--------------------------------------------------------------------------------
本文檔的標題為:<!--#var document_title--> 。
<P>
<!--#if "AUTHENTICATED_USER=='小地主'"-->
嘿!你好,小地主!
<!--#else-->
嘿!你好,陌生人!
<!--#/if-->
--------------------------------------------------------------------------------
當然 DTML 文檔能包含其他 DTML 文檔。一個常用的設計就是頁面頭和腳的包含:
--------------------------------------------------------------------------------
<!--#var standard_html_header-->
<H2>歡迎來到 www.FreeLAMP.com!</H2>
<!--#var standard_html_footer-->
--------------------------------------------------------------------------------
DTML 采用 #in 標記提供強大的遞歸插入。這個標記也可以用來自動管理批處理。下面的例子調用 SQL 查詢對象,遞歸調用結果集數(shù)據(jù)建立表格:
--------------------------------------------------------------------------------
<TABLE>
<!--#in getEmployees-->
<TBODY><TR>
<TD><!--#var first_name--></TD>
<TD><!--#var last_name--></TD>
<TD><!--#var job_title--></TD>
<TD><!--#var hire_date--></TD>
</TR>
<!--#/in-->
</TBODY></TABLE>
--------------------------------------------------------------------------------
采用這些標記和其他更加高級的 DTML 結構,Web 開發(fā)人員能調用 SQL 查詢語句,建立新的對象,操作對象屬性,建立高度動態(tài)的網(wǎng)站內容。下面的例子采用了 DTML的 sendmail 標記來發(fā)送 Email。
--------------------------------------------------------------------------------
<!--#var standard_html_header-->
<!--#sendmail smtphost="mail.freelamp.com">
To: Feedback Department <[email protected]>
From: Feedback Form <[email protected]>
Subject: 用戶意見反饋
<!--#var name-->提出意見:
<!--#var comments-->
<!--#/sendmail-->
<H2>謝謝!</H2>
<P>
感謝您的建議!
<!--#var standard_html_footer-->
--------------------------------------------------------------------------------
“安全腳本”的重要概念就是不像其他模板系統(tǒng), DTML 不允許你建立任意的腳本對而構成對系統(tǒng)安全的威脅。相反,Zope 提供了一種不同的對象叫作外置方法,封裝更加復雜的腳本和包含隨意的代碼。 DTML 的作者能調用外置方法,但是只能在自己的安全設定范圍內運行。
大多數(shù)情況下, DTML 本身就能完成大多數(shù)一般性的任務,Zope 提供高級標記的目的就是為了減少編寫復雜腳本的需要�!皌ree” 標記就是這樣的例子,這個標記能提供和Zope 管理界面左邊的幀一樣的界面。
相關Windows教程:
- 相關鏈接:
- 教程說明:
Windows教程-面向對象的Web 服務器Zope (2)
。