面向对象的Web 服务器Zope (3)

王朝厨房·作者佚名  2007-01-02
窄屏简体版  字體: |||超大  

四、数据存取

Zope 的数据源可以包括关系数据库,以及非关系型的 LDAP/IMAP 等。 Zope 支持常见的关系型数据库,包括Oracle, Sybase, MySQL 以及大多数 ODBC 兼容的数据库。

为了存取后台数据,你需要建立一个数据库连接对象,然后建立 SQL 方法对象,

这个对象能使用 DTML ,能很方便的建立动态的查询语句。下面建立的 getTasks 对象是从"tasks"表中选出对应用户的任务:

--------------------------------------------------------------------------------

select * from tasks

where

emp_id='<!--#var AUTHENTICATED_USER-->'

--------------------------------------------------------------------------------

结果集的数据应用于 DTML 文档:

--------------------------------------------------------------------------------

<H2><!--#var AUTHENTICATED_USER-->的任务</H2>

<TABLE>

<!--#in getTasks-->

<TBODY><TR>

<TD><!--#var title--></TD>

<TD><!--#var due_date--></TD>

</TR>

<!--#/in-->

</TBODY></TABLE>

--------------------------------------------------------------------------------

Zope 以对象为中心的设计,允许你采用清晰的数据/表示分隔,数据库程序员在 SQL 方法对象上工作,内容设计人员调用这些 SQL 方法。这样的对象模型也能容易的集成多种数据源,高级的数据存取特色甚至能定义数据库结果的对象行为,从而把平面型的关系记录转换为 Zope 应用的“智能”数据。

Zope 开发环境的另外一个好处就是它的事务模型能自动延伸到后台数据库,如果你的关系型数据库支持事务,Zope 会在运行SQL 方法之前自动开始事务,而在 Web 请求成功结束后自动提交事务,如果其中发生错误则会自动回滚,使事务的集成对Web 开发人员完全透明。

五、集成的搜索

Zope 提供快速,灵活的索引,采用 ZCatalog 对象搜索。ZCatalog 对Zope 网站下所有类型的对象提供可高度定制的全文和域的索引。对象可以根据其内容或者属性索引,能提供结构化的搜索。

搜索结果可以来自多种不同的数据源,除了基本的文档外,还可能来自邮件列表的EEmail 消息对象,数据库里的记录,甚至 LDAP 目录中的资源。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航