查看“首页/Python/Zope中的基础对象”的源代码
来自Ubuntu中文
←
首页/Python/Zope中的基础对象
跳到导航
跳到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== Zope中的基础对象 == 转自 PostgreSQL中文网站 作者:tingle Zope对象能帮我们处理不同的任务,不同的对象可处理应用程序中的不同部份。一些对象可保存内容(文本、电子表格和图象等);一些对象可处理逻辑操作,如接收Web表单的输入 或执行脚本;一些对象可控制内容的显示,如显示网页、邮件等。 一般来说,基础的Zope对象有以下三类: * 内容对象:<br> 内容对象可保存各种文本二进制数据,另外,内容对象还可存取外部数据,如系统文件和关系数据库。<br><br> * 显示对象:<br> Zope提供两种对象来控制网站的显示,一种是DTML,一种是ZPT。两者间的不同点是,DTML同时处理显示和逻辑关系,ZPT则可与表现层分离。<br><br> * 逻辑处理对象:<br> Zope提供了一些工具帮助我们处理商业逻辑。有三种对象可处理进行逻辑处理:DTML,python script,perl script。通过这些对象我们可以改变对象属性、发送信息和邮件、进行条件测试和对某些事进行动态反馈等。<br> DTML对象的分类有些不清,它即可作为显示对象,也可作为逻辑处理对象。我们还可安装第三方的Zope对象来扩展zope的功能。我们通常称这些对象为“产品”<br><br> ---- === 内容对象:Folders,Files,and Images === * Folders<br> Zope的Folder对象主要用于包含其它对象,包括Folder。文件夹的结构对于安全和显示很重要,建立时需考虑清楚。<br><br> * Files<br> Zope的Files对象包含raw数据,象音频、视频和文档。它还可保存一些Files对象不支持的内容,如Flash文件、Java Applets等。Files对象保存内容时不考虑内容的类型,所以可以用Files对象来保存任意的数据。<br>每个File对象都有一个叫“content type”的属性,该属性符合MIME标准。如:“text/plain(纯文本)”、“text/html(html格式)”、 “application/pdf(pdf格式)”。当你上传一个文件时,zope会根据文件名自动分配一种MIME类型给“content type”属性。<br><br> ** 建立和编辑文件<br> 从zmi 右上角的对象添加列表中选择“File”,按“Add”。并填上“id”(必填)、“title”(可选)。如果想建立一个空白文件,直接按“Add”即可,如果想上传一个文件,可按“Browse”按钮,从本地选择一个文件上传。文件一旦建立,就可打开进行内容编辑或修改属性。也可通过“upload” 功能通过本地文件更新它。<br><br> ** 浏览文件<br> 编辑和上传完文件后,我们可通过“view”标签来浏览文件内容。当然前提是要zope能识别该文件的类型,否则zope会弹出一个下载窗口,要求你下载该文件。你也可直接通过浏览器显示文件内容,例如有一个放在zope的根目录下的test.pdf文件,你只要在浏览器输入<code><nowiki>Http://localhost:8080/test.pdf</nowiki></code>即可!<br><br> * Images<br> Image对象包含如GIF,JPEG,PNG格式的文件,和文件对象很类似,但Image对象包含一些专有的属性,如图像的宽、高等属性。<br><br> === 显示对象:ZPT 和 DTML === 表现层和逻辑层应该分开。表现层负责显示静态和动态内容。一般是html文档。ZPT采用XML名称空间元素,能有效分离逻辑层和表现层。DTML采用 “tags”元素,所以表现层和逻辑层分离得不好。ZPT和DTML都是“server-side”技术,就象SSI,PHP,JSP一样。代码都由服务器来执行。 ==== ZPT VS DTML:相同的目的,不同的作用 ==== “tag -based”的脚本语言不能很好地分离表现层和逻辑层。如DTML、SSI、PHP和JSP。这样使程序设计师和网页设计师不能很好地分工合作。为了有效分离表现层和逻辑层,就产生了ZPT这种“attribute-based”的语言。这两种语言在zope中支持,而且为一直共存。ZPT和DTML的功能有些重复,致使一些人感到困惑,不知怎么选择。下面有几点提示希望能帮到大家更好地使用这两种语言: * 如果你的团队包含程序设计师和网页设计师的团队,就应该选择ZPT,以使团队能更好地分工合作。<br><br> * ZPT建立的页面需是XHTML、XML兼容,而DTML不用。ZPT不能动态改变CSS样式表、SQL语句等,但DTML可很容易实现。<br><br> * DTML能提供很好的条件控制语句,在这方面,DTML更像PHP、ASP这样的脚本语言。可以用DTML来替代它们。<br><br> * 表现层与逻辑层分离也不是适用于所有情况,所以有时DTML能比ZPT工作地更好。<br><br> ==== 建立、编辑、浏览ZPT文档 ==== 建立、编辑和浏览ZPT文档与File对象相似,这里就不写了。一些内容可参考第10章。 ==== DTML对象:DTML Documents 和 DTML Methods ==== DTML对象包括DTML文档和DTML方法两种。DTML对象受到zope安全机制的约束,所以能安全地显示内容。 DTML 文档和DTML方法有什么不同呢?表面上,两者都包含DTML代码和数据,都有相同的用户接口和API。DTML方法主要用于显示其它对象,DTML文档用于显示本身的内容。DTML文档支持属性功能,DTML方法不支持属性。一般来说,你应该用DTML方法来存放DTML内容,除非你有一个好的理由需使用DTML文档,如你需要使用对象属性。详细介绍请参考13、14章。 ==== 建立、编辑、浏览DTML ==== 建立、编辑、浏览DTML操作同File,这里不细说。详细介绍请参考13、14章。 === 逻辑对象:Script(Python)对象和外部方法 === 逻辑对象返回数据给显示对象进行显示。在zope中内置的逻辑对象有python script和外部方法,这两种对象都是使用Python脚本语言来开发的。现在也可以使用perl script这个附加的逻辑对象了。好象也有一些产品可以在zope中使用php和jsp,如PHParser,PHPObject和ZopeJSP,但我没试过。 ==== 外部方法 ==== 外部方法和Script(Python)对象差不多,都是采用python脚本语言编写,作用也一样,但它们一些不同: * 外部方法不能用ZMI编辑,它放到本地文件系统中的zope实例目录的Extensions目录下。<br><br> * 由于外部方法不在ZMI中编辑,所以它不受zope的安全机制约束,可以直接访问本地文件系统,能导入和执行任意的python模块和代码。<br><br> * 外部方法不支持“bindings”的概念。<br><br>
返回
首页/Python/Zope中的基础对象
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息