Zope3编写新的内容对象

在Zope 3中实现新的内容对象对Zope3">开发人员来讲其重要性不言而喻。为了让讲解更加具有可操作性,本章将使用一个留言簿范例来帮助大家理解。下面一章,我们将列出在Zope3中实现和注册一个新内容组件所需的主要步骤。

本章将是我们开发一个 MessageBoard 类型的一个起点。 在任务开始前,我们认为您已经安装好了 Zope 3 , 还有您也已经具备了 Python 的编程技能,当然更重要的一点就在于您非常乐意花一些时间学习 Zope 框架。

步骤 I:准备工作

在开始之前,你应该已经安装了 Zope 3,创建了 principal.zcml 文件并可以成功启动 Zope。你都做到了吗? 好的,那么,让我们开始。

相对于Zope2, Zope3没有要求您必须在指定目录中添加程序包,您可以选择您认为方便的地方来添加它。最好的地方就是把它放到ZOPE3/src (ZOPE3 是您的Zope3安装目录)目录中, 因为这样的话,我们就不用担心和PYTHONPATH相混淆了。另外,为了让书中所演示的内容显得更加整洁清晰,我们把所有的程序代码都放进一个名为book的程序包。在Unix中,用下面的命令创建book 目录:

1  mkdir ZOPE3/src/book

把一个空的 <u>init</u>.py 文件放到新建的目录里,在Unix中,您可以使用如下命令来完成该工作:

1  echo "# Make it a Python package" >> ZOPE3/src/book/<u>init</u>.py

不过,您当然也能使用文本编辑器来创建该文件,但是您需要确信该文件中的Python 程序代码是正确的。通常,文件中应该至少包含一些空格,因为空文件常常搞乱一些存档文件。现在我们又以类似方式在book里面创建另一个messageboard的程序包(不要忘记创建<u>init</u>.py 文件)。从现在开始,我们下面需要进行的所有工作都只需在messageboard包里进行,这个包位于ZOPE3/src/book/messageboard。

注意:您可以通过如下地址下载我们所做的每一步的源码: http://svn.zope.org/book/trunk/messageboard 其中包含许可,为了减少输入,我们在整个源程序中都省略了与许可有关的信息,但这并不代表这些源程序没有版权,实际上,版权仍然存在于这些源文件之中。

步骤 II:初步设计

就像前面我们所提到的,我们的初衷就是需要开发一个基于Web的留言簿应用程序,程序的界面并不要求十分漂亮,但功能则要求相当完备。具体设计是,根对象 MessageBoard 可以容纳来自不同用户的记录或消息(Message)对象。另外,由于我们想让用户对不同的消息回复,因此我们就需要允许消息包含回复。

那就意味着11545.html">我们有两个基于容器的组件:MessageBoard只包含能被添加到任何文件夹的消息或那些希望能包含消息的容器。MessageBoard应该有一个对主题讨论的描述(description)。另一方面,Messages(消息)只被留言簿或其他消息包含。每一个消息都将有标题(title)和正文(body)。

设置应该包含我们制作这个可用对象所必需的东西。稍后我们还将联合许多其它与这些组件有关的元数据,并把他们更好的集成到zope3中,而且还将增加相关的辅助功能。

时间: 2024-08-02 02:57:28

Zope3编写新的内容对象的相关文章

jquery创建一个新的节点对象(自定义结构/内容)的好方法_jquery

HTML 复制代码 代码如下: <!DOCTYPE html> <html> <head> <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <meta charset=utf-8 /> <title>JsBin-在线js/css调试工具&

用mapbasic编写程序改变mapinfo对象颜色

问题描述 想编写能改变选中对象的颜色~~刚接触这个软件,不太懂,希望大家能指点一下,非常感谢 解决方案 解决方案二:好老的语言..貌似有个pen.brush的对象,查查帮助里的相关内容吧解决方案三:好的,谢谢

KindleFire:亚马逊新的内容贩卖利器

一.亚马逊Kindle电纸书阅读器 2007年底,亚马逊公司宣布了一款划时代的产品-Kindle电纸书阅读器.但这款产品真正造成巨大的市场影响,则是在2009年初其第二代产品Kindle 2发布之后.简单方便的用户体验是Kindle 2产品提供给用户的核心价值.在60秒之内,让用户可以开始阅读任何一本书,这是Kindle 2的宣传重点,也是吸引大量用户购买这一产品的重要原因.当读者在电视或其他媒体上,看到一本新书介绍时,会产生一种阅读冲动.而Kindle 2提供的便捷购书方式和无线图书下载功能,

java-注意不要编写返回引用可变对象的访问器方法.--------要怎么证明呢

问题描述 注意不要编写返回引用可变对象的访问器方法.--------要怎么证明呢 import java.util.Date;import java.util.GregorianCalendar;public class Employee { private String name; private double salary; private Date hireDay; public Employee(String ndouble sint yearint monthint day ){ na

各位朋友好,请教sed查询到“[client]”这一行后,在这一行下面追加一行新的内容

问题描述 各位朋友好,请教sed查询到"[client]"这一行后,在这一行下面追加一行新的内容 各位朋友好,请教sed查询到"[client]"这一行后,在这一行下面追加一行新的内容"hello"的linux命令写法 我有一个文件a.txt,其内容如下: aaaa bbbb [client] ccccc [client2] ddddd 现在希望在精确查找到[client]这一行后,再该行后面追加一行"hello", 我之前用

C#3.0语言新特性之对象和集合初始化器

在C#3.0中,一个对象创建表达式可以包含一个对象或集合初始化器,用于初 始化新创建的对象的成员或新创建的集合的元素. 对象创建表达式: new type (argument-list(可选)) 对象或集合初试化器(可选) new type 对象或集合初试化器 一个对象创建表达式可以省略构造器参数列表,并将其连同圆括号一起替换 为一个对象或集合初始化器.省略构造器参数列表并将其连同圆括号一起替换为 一个对象或集合初始化器等价于指定一个空的参数列表. 在执行一个带有对象或集合初始化器的对象创建表达

编译-NCTUns添加模块问题或自己编写新模块步骤

问题描述 NCTUns添加模块问题或自己编写新模块步骤 最近在用NCTUns做路由协议仿真,请问有没有大侠在NCTUns上添加新的路由协议模块成功的,比如GPSR或是自己写的协议模块编译通过的?摆脱各位了 解决方案 http://www.pudn.com/downloads628/sourcecode/unix_linux/network/detail2553472.html 解决方案二: 你回答的很迅速,谢谢,这个文档我之前下载过

sharepoint2010-share point2010添加了新的内容数据库和网站集但是看不到内容

问题描述 share point2010添加了新的内容数据库和网站集但是看不到内容 share point2010添加了新的内容数据库和网站集但是看不到内容

如何为xen4版本编写新的前端设备驱动?都需要在那部分进行改进?

问题描述 如何为xen4版本编写新的前端设备驱动?都需要在那部分进行改进? 如何为xen4版本编写新的前端设备驱动?都需要在那部分进行改进? 可能比较麻烦,可以支付相应报酬.急求!求大神指导. 解决方案 这个是比较麻烦,建议你找一下专业人员,仔细详谈一下费用,然后让他们给你实现,最好是本地的 解决方案二: 怎么联系呢?专业人员是指?