欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Zope的概念和架構

Zope的概念和架構

作者:潘俊勇上次修改時(shí)間: 2005-12-14 14:27

轉自:杜文山 《快樂(lè )程序》第一輯 Zope概念和架構


  1. 基本概念
  2. 基礎Zope組件

1. 基本概念

  Zope框架有一些基本概念,理解了這些概念有助于充分使用Zope。

1.1. Zope是一種框架

  Zope涵蓋了很多Web應用程序開(kāi)發(fā)者需要處理的底層細節,比如數據的持續性,數據的完整性,數據訪(fǎng)問(wèn)控制等等,這樣就可以讓你集中精力在解決問(wèn)題上。比起其它的語(yǔ)言或框架,Zope可以讓你充分利用Zope提供的服務(wù)來(lái)更快速的構建web應用程序。Zope可以讓你使用Python語(yǔ)言來(lái)編寫(xiě)web應用程序中的邏輯處理部分,當然也可以用Perl。Zope還提供兩種方式,就像模板一樣,來(lái)處理文本、XML和HTML 這樣的數據,一種式文本模板標記語(yǔ)言(DTML)和Zope頁(yè)面模板(ZPT)。

1.2. 面向對象

  不同于基于文件的Web模板系統,比如ASP或PHP,Zope是高度面向對象的Web開(kāi)發(fā)平臺。許多語(yǔ)言都支持面向對象的概念,包括編寫(xiě)Zope的Python語(yǔ)言。常見(jiàn)的Web腳本語(yǔ)言比如Perl或PHP部分支持面向對象的特性,通過(guò)閱讀“面向對象”這一章可以幫助深入理解這個(gè)概念,也可以通過(guò)本書(shū)中提供的例子來(lái)深入理解這個(gè)概念。

1.3. 對象出版

  Zope之所以形成,其中一個(gè)基本的理念是:Web的基礎是面向對象的。指向某個(gè) Web資源的URL實(shí)際上就是對象容器中對象的路徑。HTTP協(xié)議提供了一種對象發(fā)送消息和接收回應的方法。

  Zope的對象結構是分層次的,就是說(shuō)典型的Zope站點(diǎn)是由對象組成的,對象又有可能包含其他對象。根據對象的名稱(chēng),Zope按照層次結構通過(guò)URL映射到對象。比如,URL "/Marketing/index.html"可以用來(lái)訪(fǎng)問(wèn)文件夾對象"Marketing"中的名為"index.html"的文檔對象。

  Zope就是以這樣一種直接的方式“出版”你所創(chuàng )建的對象?;具^(guò)程如下:

 

  1. 瀏覽器給Zope服務(wù)器發(fā)送請求。請求的URL格式為:protocol://host:port/path?querystring, 比如:
             http://www.zope.org:8080/Resources?batch_start=100    
  2. Zope把URL分解成:"host(主機)", "port(端口)" "path(路徑)" 和 "query string(查詢(xún)參數)"。(http://www.zope.org, 8080, /Resources 和 ?batch_start=100, respectively)
  3. Zope根據路徑(path,即/Resources)在對象數據庫中定位對象。
  4. Zope用傳遞過(guò)來(lái)的參數來(lái)執行這個(gè)對象。
  5. 如果對象執行的結果返回數值,那么數值就被發(fā)送回瀏覽器。一般是返回 HTML,文件數據或圖形數據。
  6. 瀏覽器解釋收到的數據并顯示。
  Zope對象的URL由包含這個(gè)對象的文件夾和對象的id組成,用/符號分開(kāi)。比如: /Uncles/Bob,就調用Uncles目錄中的Bob。

  還比如:

  /Uncles/Rick/Uncles/Danny/Uncles/Louis
  完整的URL就可以是:http://localhost:8080/Bob 。 更為詳盡的解釋請參考:Zope 開(kāi)發(fā)指南中的對象出版一章Object Publishing

 

1.4. 通過(guò)Web進(jìn)行管理

  Zope可以通過(guò)完全通過(guò)瀏覽器來(lái)創(chuàng )建和處理各種對象。Zope提供的管理界面就像 Windows中的資源管理器。對象可以按照層次放在任何地方,站點(diǎn)管理者通過(guò)點(diǎn)擊對象的不同視圖來(lái)管理對象。不同的對象有不同的視圖。比如“DTML Method”對象有一個(gè)標有“Edit”的視圖,其中可以編輯代碼,“數據庫鏈接對象”(Database Connection)提供修改連接和參數的視圖。所有的對象都有一個(gè)“安全”(Security)視圖,用于管理訪(fǎng)問(wèn)權限控制。

1.5. 安全與授權

  Zope區別于其它應用服務(wù)器的一個(gè)顯著(zhù)特點(diǎn)是Web對象模型和Web開(kāi)發(fā)模型緊密結合。從而可以讓許多不同的人都可以參與進(jìn)來(lái), Zope允許對不同的用戶(hù)進(jìn)行安全授權,從而可以讓頁(yè)面設計者,數據庫管理員,以及內容管理員協(xié)同工作。

  成功的Web站點(diǎn)需要許多人共同參與,比如應用開(kāi)發(fā)者,SQL管理員,內容管理員,甚至是最終的用戶(hù)。此時(shí),安全問(wèn)題就變得及其重要。如何控制,以及如何分配權限?比起傳統的基于文件的系統,Zope中的對象提供了豐富得多的安全許可。不同的對象可以有不同的安全限制,比如對于“SQL Method”對象,你可以允許用戶(hù)調用它,但不能更改或查看源代碼。你還可以限制用戶(hù)只能創(chuàng )建某種類(lèi)型的對象,比如只能創(chuàng )建文件夾或DTML文檔,而不能創(chuàng )建“SQL Method”對象。

  Zope通過(guò)“用戶(hù)文件夾”("User Folders")來(lái)管理用戶(hù)。在這個(gè)特殊的文件夾中包含用戶(hù)信息。也可以通過(guò)添加擴展包來(lái)擴展用戶(hù)文件夾,從而可以通過(guò)關(guān)系型數據庫或LDAP目錄來(lái)管理。添加新用戶(hù)文件夾的權限可以分派給下級文件夾中的用戶(hù),從而可以讓你認可的用戶(hù)來(lái)管理網(wǎng)站中的某一部分。

1.6. 本地對象持續和事務(wù)(Persistence and Transactions)

  Zope對象存儲在一種高性能的支持事務(wù)機制的對象數據庫中,即Zope對象數據庫(ZODB).對象數據庫認為每個(gè)Web請求是個(gè)單獨的事務(wù)。在Web請求期間,如果執行過(guò)程中發(fā)生了錯誤,任何所做的更改都將被取消。對象數據庫還支持多級撤銷(xiāo),這樣就可以讓站點(diǎn)管理員僅僅通過(guò)點(diǎn)擊“undo”按鈕撤銷(xiāo)更改。Zope框架中實(shí)現對象持續和事務(wù)的所有方式對開(kāi)發(fā)者都是透明的。關(guān)系型數據庫在Zope框架中依然有效。

1.7. 獲?。ˋcquisition )

  “獲取”(Acquisition)是Zope中非常重要的一個(gè)概念,這個(gè)概念簡(jiǎn)單的說(shuō)就是:

 

  • Zope對象可以被包含在其它對象中(比如文件夾)。
  • 對象可以“獲取”它們的容器對象的屬性和行為。
  所有的Zope對象都支持獲取,這樣就提供了管理各種資源的非常強大的方式。比如,經(jīng)常使用的SQL查詢(xún)語(yǔ)句或者一小段HTML代碼,可以在某個(gè)文件夾中定義,通過(guò)”獲取“這樣一種機制就可以讓下級文件夾自動(dòng)調用。如果這個(gè)SQL查詢(xún)進(jìn)行了修改,不用擔心下級文件夾,這個(gè)修改對所有下級文件夾都有效。

  因為在搜索對象的時(shí)候是按照從當前目錄往上按照層次來(lái)獲取的,因此很容易指定生效的范圍。比如,有一個(gè)包含與體育內容相關(guān)的文件夾“Sports”,你可以在這個(gè)文件夾中創(chuàng )建新的頁(yè)眉和頁(yè)腳文件。這樣就可以使“Sports”文件夾和下級文件夾中調用這兩個(gè)文件。而不會(huì )調用“Sports”上級文件夾中的文件。

  在“獲取”一章中將詳細講述這一概念

1.8. Zope是可擴展的

  Zope是高度可擴展的,可以通過(guò)多種方法創(chuàng )建新的Zope對象,即可以通過(guò)用Python 語(yǔ)言編寫(xiě)新的擴展模塊,也可以完全通過(guò)Web來(lái)創(chuàng )建。Zope已經(jīng)包含了很多內置的組件,這些組件可以幫助進(jìn)行擴展。Zope當中已經(jīng)包含了一系列框架類(lèi),這些類(lèi)在創(chuàng )建新Zope對象時(shí)用來(lái)處理細節問(wèn)題。

  Zope已經(jīng)有了很多擴展產(chǎn)品,這些擴展產(chǎn)品用于增強Zope的功能,比如添加論壇、數據處理、XML工具,以及電子商務(wù)程序等等。這些程序大多數是由Zope愛(ài)好者編寫(xiě)的,并且大多數是開(kāi)放源代碼的。

2. 基礎Zope組件

  Zope由一些不同的組件構成,從而幫助你構建web應用程序。下圖顯示了這些基礎 Zope組件:

 

 

Zope 架構

  說(shuō)明:

ZServer?
這是Zope內置的Web服務(wù)器,用于提供內容服務(wù)。這個(gè)web服務(wù)器還通過(guò)FTP、 WebDAV?和XML-RPC協(xié)議提供服務(wù)。
Web Server(Web服務(wù)器)
Zope還可以和現有的Web Server結合在一起,比如Apache或者M(jìn)icrosoft IIS,以及其它支持通用網(wǎng)關(guān)接口(CGI)的Web服務(wù)器。
Zope Core(Zope核心)
這是Zope的核心引擎,它控制如何顯示,以及控制管理界面和對象數據庫。
Object Database(對象數據庫)
使用Zope的時(shí)候,大多數情況下是在處理存儲在Zope對象數據庫中的對象。
Relational database(關(guān)系型數據庫)
數據不一定要存儲在Zope對象數據庫中,Zope中可以使用其它的關(guān)系型數據庫,比如 Oracle, PostgreSQL?, Sybase, MySQL?等等。
File System(文件系統)
Zope還可以使用存儲在服務(wù)器文件系統中的文檔和其它文件。
ZClasses?
可以通過(guò)使用Web管理界面來(lái)添加新的對象。ZClasses就是這種對象。
Products(產(chǎn)品)
Zope中還可以通過(guò)在Zope服務(wù)器中的文件系統里安裝“產(chǎn)品”文件來(lái)添加新的對象。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Plone/Zope簡(jiǎn)介
Java視線(xiàn)論壇 :: 閱讀主題 - 我眼中的Python
ZODB 入門(mén)
Python高級編程
Python做網(wǎng)站
Web開(kāi)發(fā)的10款最佳Python框架
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久