麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Apache > 正文

Zope的優點和Apache+PHP+MySQL的比較

2024-08-27 18:28:38
字體:
來源:轉載
供稿:網友

zope能和apache+php+mysql進行比較是因為它即是http服務器,又是數據庫,又包含腳本編程語言。現在向大家推薦zope是因為它的功能更豐富,建立應用更容易,效率比php高幾倍。現在的服務器端編程環境有iis+asp+sqlserver、apache+php+mysql、和現在的zope,相比較zope對于文檔出版更專業。

我曾經用過dw和frontpage編網頁,就感覺frontpage的導航系統比較好,還有它能生成圖形化的標題,和各種專業化的模板。dw的導航系統幾乎不能用,但dw的網頁制作更專業,dw的模板也有自己獨特的地方。曾經想過將frontpage和dw相結合,但感覺很別扭。當網站的資料多了最迫切的需要是把資料放到數據庫中,這樣容易統一管理。常常奇怪大型的網站常常有統一的外觀,豐富的導航系統,豐富的相關鏈接。肯定在網站的后面有專業的網站管理軟件和專業的技術人員的支持。因此我常常尋找可以用的網站管理系統。在linuxfab.cx網站發現了zope,終于找到了我想要的東西。

每當向人們推薦zope的時候,總有人說我用php很好不用換,或說用asp很好。asp和php比較相似,都是可以在html中加入腳本語言。相比來說,我比較欣賞asp,它是基于vb的,同時因為它有獨立的腳本引擎,也可以支持perl、javascript等腳本。這樣大家可以用自己熟悉的語言來編程不要另學新的語言。而php就比較奇怪,本來和perl很相似,為什么不干脆用perl來實現在頁面的嵌入還要專門發明一種語言,來增加大家的學習負擔,php雖然語言稍微清楚了一些,但沒有根本的不同,卻把perl的精華模式匹配丟掉了。perl也比較奇怪,為什么不象jsp一樣推出相同的功能?因此心理上對php比較討厭,雖然它和數據庫的緊密結合,以及能生成圖象的功能比較好。zope雖然在網站管理上很出色,但它同時也是一個很好的編程環境。它支持python和perl,python現在的發展勢頭很強,善于編制大的程序,是一個語法非常豐富的面向對象的數據庫,在很多方面可以代替c和java,編程效率要高很多,很有吸引力。我學完了python正找不到使用的機會,zope正好給了我使用python的機會,也讓我領教了python的強大。->zope整個程序都是用python編的!

zope是一個面向對象的數據庫,是一個文檔管理的數據庫,是一個強大的http服務器,是一個完善的開發環境。從本質和出發點來說,zope是一個文檔管理數據庫。它有大量的文檔管理功能。

先說zope做為http服務器的優勢:

雖然zope是個數據庫,它的所有文檔都放到數據庫中而不是放到文件系統,但它卻完成了一個類似文件管理器的管理界面和一個ftp接口,完全可以當作一個一個大家熟悉的文件系統來使用,管理習慣很熟悉。

而zope又是一個面向對象的數據庫,面向對象的數據庫和一般的數據庫很不一樣,它不象關系數據庫一樣基于表格,而更象文件系統一樣是樹狀結構的。從對象的角度來說,記錄的各個域值就是對象的各個屬性。它超越關系數據庫的地方是能適應各種數據類型,每種數據類型都是一種對象,不但有各種屬性,還有各種操作特定數據類型的方法。常常聽說對象數據庫,通過zope才具體接觸了對象數據庫。(ingresql和userland的產品也是對象數據庫)

zope的特點是把文件和文件夾作為基本的對象,每個文件和文件夾都可以隨意增加屬性,同時,文件夾下面的文件和文件夾又是父文件夾的屬性。通過增加腳本文件的形式,可以為文件和文家夾增加方法。比如,一個文件可以加入“作者”、“分類”、“難度等級”等屬性,文件夾也可以加入“顯示此文件夾下所有文件內容”的方法。

zope還有它獨特的方法來實現了對象級的繼承。這個方法就是“獲取”。比如文件系統的結構是/a/b/c,c是一個文件,在c中如果要引用一個變量v,如果c的屬性中沒有v,就到b的屬性中找,然后找b下是否有叫v的文件,然后找a的屬性,然后找a中的文件,然后找/目錄的屬性,找根下的文件。如果v是b的屬性,就不用特別用a.b.v來引用。這樣,c文件中就會從各級文件夾繼承豐富的變量環境。一個典型的例子是,如果在根目錄下放置了文件standard_html_header,就可以在任何目錄下的文件引用它來表現每個網頁的共性的東西。如果在某個目錄下需要自己特有的網頁效果,只要在這個目錄下放一個特有的standard_html_header就可以了。這樣,這個目錄下的文件就會獲得這個目錄下的header,而不是根目錄下的header,從而實現了每個欄目的個性。

獲取的形式還可以是:c.m,m可以是方法,也就是腳本文件,比如用m來使c有另外一種表現形式。m文件可以放到b文件夾下,也可以放到a文件夾下,c.m的表達方法都成立。這樣,我在根目錄下放了m,網站的所有文件都有了方法m。

用url也可以支持這種獲取,比如用http://my.com/a/b/c/m來調用方法m。同樣,m的變量環境就是/a/b/c。

總結:zope作為http服務器,可以使服務器中的文件和文件夾有屬性和方法等豐富的附加信息。便于文件的查找和管理和表現等操作。同時,它又提供方便的文件操作。

zope的現在的缺點是,不能直接使用外部文件,還要通過ftp復制到數據庫中。現在有對這方面的補救措施,但不是zope默認的。希望zope將來能象操作自己的對象一樣操作外部文件和其他網站的文件。

zope作為數據庫的優勢:

從上面的論述,大家對zope作為數據庫的表現有了大概的印象。zope和其他數據庫相比,它是一個面向對象的文檔數據庫。

不像mysql,zope有可視的管理界面,zope的所有的管理工作都是通過web來完成的。web界面的優點是跨平臺,可以遠程操作,便于界面的定制。zope的管理界面和一個文件管理器類似,當點擊一個文件后,有可以用同樣的web界面來進行文件的編輯和添加屬性、安全管理等。zope的腳本調試也是用web完成的。

zope作為數據庫,有強大的用戶權限管理功能,它的用戶和權限管理非常強大,可以在某個文件夾下進行添加用戶的操作,也分別對特定的對象都有自己的安全權限管理。

網站中數據庫中主要的數據是文檔,zope作為文檔數據庫,有強大的文檔管理功能,有版本管理、歷史記錄功能,有全文檢索功能。同時集成了文檔的編輯環境和管理環境,管理文檔象在文件管理器中一樣方便。這些都是一般的數據庫所不具備的。

如果,數據庫中有上萬條記錄,zope的效率會比傳統數據庫要低,但zope有大量的適配器來鏈接各種數據庫。來實現純表格操作和大量的記錄操作。

zope作為編程和定制環境的優勢:

zope有dtml(動態模板標記)語言來嵌入html中,實現網頁的動態化。簡單地使用地形式就可以插入動態內容。由于可以方便地加入屬性和方法以及“獲取”功能,文檔具有極為豐富的變量環境。可以比一般的客戶端包含提供更強大的功能。又有的形式來方便地獲取多個文件地內容。在dtml中還可以嵌入python表達式。這樣,不用編程就具有強大的動態網頁功能,實現導航功能等也輕而易舉。這些功能的實現比php等語言要容易的多。

如果要加入復雜的功能,可以用腳本模塊來實現函數和復雜操作,然后在dtml中調用腳本模塊,這樣,實現了邏輯和表現的分離。在zope中允許用python、perl和sql做腳本語言,各種腳本可以相互調用,這樣實現了多語言的混合編程,實現了.net要實現的混合編程的目的。zope為腳本語言提供了統一的zope api。用這種方式(以dtml為媒體)perl在unix中也可以實現嵌入html的效果。perl愛好者有福了。在這里可以直接用sql操作數據庫,免去了把sql嵌入其他語言的麻煩。

zope提出了zclass的概念,在一個product中捆綁了針對特定用途數據的一系列的屬性和方法,甚至編輯和查看界面、特定權限、幫助等。比如把任務作為一個zclass,任務有任務的發出人、任務的執行人、任務的開始時間、完成時間、任務的內容等屬性,也可以有一個任務的建立和完成的方法。這樣當調用建立方法時給執行人發一封信,當調用完成方法時,給發出人發一封信。同時要有任務的web編輯界面,發出任務和修改任務的權限定義。當建立了這樣一個zclass,就可以在任何文件夾中加入一個任務實例,zope先檢查用戶是否有新建任務的權限,然后調出任務的編輯界面填入任務的各種屬性,也有“建立”和“完成”按鈕來調用方法。通過zclass可以方便地為zope增加新功能。這種product的概念是php等語言所沒有的功能,而通過product,zope可以思路清晰地完成一項復雜地功能。

同時,在product的實現中,不但可以調用zope api,還可以直接調用zope本身的各種模塊來實現更復雜的功能。因為zope是開放源代碼的,又是python實現的,當編程中遇到難題時,可以隨時參考zope的源代碼,方便的調用zope模塊和函數,甚至可以修改zope代碼,這些也是其他編程環境所沒有的。

zope的用戶管理、版本管理等功能也是通過product來實現的,因此,zope有一個標準的、開放的開發環境。

最近剛讀了一篇文章,它用dos和windows的關系來類比apache和zope,在apache中所有的東西都要自己來搞,如果不是自己搞,也要集合很多不同的程序來完成自己的任務,并且每個人的選擇是不同的,這樣,造成了相互之間沒有共同語言,就像要編dos程序,要先自己到各處抓一些圖形程序、打印程序、聲音程序、安裝程序等,來集合在一起,這樣很容易出毛病。而在zope中,有很多統一的api,當你完成一個product時,用戶管理、權限管理、管理界面、編輯界面等這些都是zope自帶的,有api可用,就不用自己亂忙了。比如象zwiki,幾乎不用它,zope本身就是一個協同工作的產品自帶用戶管理和版本管理,這些就不用浪費時間白手起家了。文章中有一句話很好:“最差的統一編程界面也比沒有統一好”。到cmf,zope更提供了極為豐富的api。

最后,如果對zope還有什么不滿意,還可以使用cmf(內容管理框架,zope的二級開發平臺)來建立、管理網站,開發新功能。cmf對zope的用戶管理、文檔管理、product進行了大量的擴展來實現更加高端的功能。關于cmf的功能,需要另外寫一篇文章來敘述。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产午夜精品一区二区三区视频 | 国产无限资源在线观看 | 中文字幕精品在线视频 | 九九热精品免费视频 | 精品久久久久久久久久久久包黑料 | 久久新地址 | 久久成人免费网 | 视频一区二区三区视频 | 成人小视频在线播放 | 国产乱子视频 | 一区二区久久精品66国产精品 | 免费a级网站 | 精品国产乱码久久久久久久久 | 国产精品一二区 | 1区2区3区在线观看 欧美特黄a | 欧美日韩色片 | 曰韩在线视频 | 毛片大全免费看 | 毛片在线视频免费观看 | 欧美爱爱视频网站 | 日本在线不卡一区二区 | 亚洲一区 国产 | 久久9久久| 国产一级一国产一级毛片 | 色阁五月 | 91网址在线观看 | 深夜视频在线观看 | 国产成人精品自拍视频 | 成人羞羞视频在线观看免费 | 国产在线观看一区二区三区 | 国产成人精品免费视频大全最热 | 黄色影院网站 | 日本欧美一区二区三区视频麻豆 | 国产亚洲欧美日韩高清 | 狠狠干夜夜操 | 99国产精品欲a | 久久精品成人免费国产片桃视频 | 黄色网址免费进入 | 天天色宗合 | 最新黄色电影网站 | 国产亚洲精品久久久久久久久 |