iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Zope的优点和Apache+PHP+MySQL的比较(转)
  • 320
分享到

Zope的优点和Apache+PHP+MySQL的比较(转)

2024-04-02 19:04:59 320人浏览 薄情痞子
摘要

Zope的优点和Apache+PHP+Mysql的比较(转)[@more@]Zope能和Apache+php+mysql进行比较是因为它即是Http服务器,又是数据库,又包含脚本编程语言。现在向大家推荐Zo

Zope的优点和Apache+PHP+Mysql的比较(转)[@more@]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的功能,需要另外写一篇文章来叙述。
您可能感兴趣的文档:

--结束END--

本文标题: Zope的优点和Apache+PHP+MySQL的比较(转)

本文链接: https://www.lsjlt.com/news/49631.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Zope的优点和Apache+PHP+MySQL的比较(转)
    Zope的优点和Apache+PHP+MySQL的比较(转)[@more@]Zope能和Apache+PHP+MySQL进行比较是因为它即是http服务器,又是数据库,又包含脚本编程语言。现在向大家推荐Zo...
    99+
    2024-04-02
  • PHP框架的比较:优缺点详细对比
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-23
  • 数组操作:PHP、Django 和 Git 的优缺点比较。
    数组是一种非常常见的数据结构,在编程中经常被使用。而在不同的编程语言中,对于数组的操作也有所不同。在本文中,我们将比较 PHP、Django 和 Git 对于数组操作的优缺点。 PHP PHP 是一种非常流行的服务器端脚本语言,它具有非常强...
    99+
    2023-10-03
    django git 数组
  • Java和JavaScript的比较(转)
    *Netscape 把 Livescript 改名为 Javascript , 这是Java的一个有趣的变异, 用于客户一方的用户化 *用Java 进行细节编程, 而JavaScript 用于客户接口和系统的全部综合 *JavaScript...
    99+
    2023-06-03
  • PHP框架的优缺点比较:选哪个好?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-23
  • Solr与Elasticsearch的优缺点比较
    这篇文章主要讲解了“Solr与Elasticsearch的优缺点比较”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Solr与Elasticsearch的优缺...
    99+
    2024-04-02
  • Java和Django的响应式框架:优缺点比较
    Java和Django是两个备受欢迎的Web开发框架,它们各自拥有自己的特点和优势。在响应式框架方面,Java和Django也有各自的实现。在本文中,我们将比较Java和Django的响应式框架,探讨它们的优缺点。 Java的响应式框架:S...
    99+
    2023-09-07
    django 响应 框架
  • Java Iterator 和 Iterable 的深入比较:优缺点分析
    概念差异: Iterator: Iterator是一个接口,代表一个从集合中获取值的迭代器。它提供了MoveNext()、Current()和Reset()等方法,允许你遍历集合中的元素,并对当前元素进行操作。 Iterable:...
    99+
    2024-02-14
    Java, Iterator, Iterable, Collection, 遍历, 性能, 迭代器, 可迭代
  • PHP 数组转 JSON 的广泛比较
    将 php 数组转换为 json 可通过多种方法实现:使用 json_encode() 函数,支持定制输出格式。利用 json_decode() 函数并指定第二个参数 json_nume...
    99+
    2024-05-04
    php json
  • PHP、Spring、Apache 中数据类型的比较分析
    在编程语言中,数据类型是非常重要的概念,它决定了变量的取值范围和运算方式。在PHP、Spring和Apache这三个流行的框架中,数据类型也扮演着重要的角色。在本文中,我们将比较分析这三个框架中的数据类型。 一、PHP中的数据类型 PHP...
    99+
    2023-07-04
    数据类型 spring apache
  • golang函数与goroutine的优缺点比较
    函数用于顺序执行任务,简单易用,但存在阻塞和资源受限问题。goroutine 是并发执行任务的轻量级线程,具有高并发性、可伸缩性和事件处理能力,但使用复杂,开销较大,且难以调试。在实战中...
    99+
    2024-04-25
    golang 同步机制
  • 【转载】Go对比Python的优点
    Go对比Python的优点如下【转载自知乎Rio】: 一、部署简单。Go 编译生成的是一个静态可执行文件,除了glibc 外没有其他外部依赖。这让部署变得异常方便:目标机器上只需要一个基础的系统和必要的管理、监控工具,完全不需要操心应用所需...
    99+
    2023-01-31
    优点 Python
  • 同步操作:Go、Laravel和Spring框架的优缺点比较。
    同步操作:Go、Laravel和Spring框架的优缺点比较 随着互联网的发展,Web开发成为了一个热门领域,越来越多的开发者开始使用不同的编程语言和框架进行开发。在Web开发中,同步操作是一个非常重要的话题,因为在处理请求和响应时需要使用...
    99+
    2023-07-09
    laravel spring 同步
  • 比较Go语言运算符的优缺点
    Go语言运算符的优劣比较 Go语言是一种开源的编译型静态强类型语言,它具有简洁、高效的特点,在近年来逐渐受到开发者们的关注和喜爱。在Go语言的运算符方面,它提供了一系列丰富的运算符,这些运算符在编写代码时能够...
    99+
    2024-01-18
    运算符 Go语言 优劣比较
  • 大数据处理:GO语言和Javascript的优缺点比较
    随着大数据时代的到来,大数据处理成为了各行各业都需要面对的问题。在大数据处理领域,GO语言和Javascript都是非常流行的编程语言。那么,这两种语言在大数据处理方面有什么优缺点呢?本文将对它们进行比较分析。 一、GO语言的优缺点 GO语...
    99+
    2023-09-09
    linux javascript 大数据
  • PHP 和 Bash 在并发编程中的优劣势比较
    随着互联网技术的不断发展,越来越多的应用需要处理大量的并发请求。在这种情况下,编程语言的并发能力成为了一个非常重要的考虑因素。PHP 和 Bash 都是非常流行的编程语言,但它们在并发编程方面的表现如何呢?本文将对它们进行比较,并且介绍一...
    99+
    2023-07-03
    bash 并发 面试
  • PHP的强制类型转换与隐式转换比较
    PHP的强制类型转换与隐式转换比较 在PHP中,类型转换是一个重要的主题,它涉及到如何处理不同数据类型之间的交互。PHP提供了两种类型转换方式:强制类型转换和隐式类型转换。在本文中,我...
    99+
    2024-03-08
    php类型转换 php隐式转换 隐式类型转换 隐式转换
  • 比较全面的MySQL优化是怎么样的
    本篇文章给大家分享的是有关比较全面的MySQL优化是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、硬件层相关优化  1.1、CPU...
    99+
    2024-04-02
  • 不同 PHP 版本中函数性能的比较和优化
    php函数性能比较显示php 7.4.0在str_replace()、strtoupper()、array_merge()和json_encode()上表现最佳,而php 5.6.40表...
    99+
    2024-04-11
    性能 优化 php
  • PHP DateTime 扩展的比较器:轻松比较和操作时间值
    比较操作符 PHP 提供了一系列比较操作符,可用于比较 DateTime 对象: 等于 (==):如果两个 DateTime 对象表示相同的时间点,则返回 true。 不等于 (!=):如果两个 DateTime 对象不表示相同的时间点...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作