论文部分内容阅读
摘要:基于Zope借助Plone建立了一个教学网站和一个物理习题库。
关键词:教据库技术 教学网站 习题库 Zope
中图分类号:TP393.09 文献标识码:A 文章编号:1002-2422(2008)03-0042-02
1 数据库技术
Zope的对象数据库的设计思想,特别适合于文档管理,知识管理,群件系统等。Plone便是一个基于Zope而设计出的功能异常强大的内容管理系统。内容对象(如文件和文件夹)是Plone的主要对象。运用Plone强大的文档管理和发布功能,可对教学资源进行有效的整合和集成。采用Plone的文件和文件夹对象来组织网络习题库的最大优点是:可对所有习题文件和对应章节目录的文件夹,采用对象编程的思想进行管理。每一习题文件都自动具有ID、作者、创建时间、修改时间及所处的目录位置等属性;每一习题文件都可设置标题、内容描述、使用期限、关键字和相关联的其它习题文件等属性。属性可以继承,下一级文件夹自动继承上一级文件夹的属性。所有这些属性都被自动进行索引,存放在Hone的Portal_catalog中,并可通过管理界面增加新的索引。索引的建立提供了对库中文档的强大查询功能,使得习题库的使用变得极其方便。
结合Zope的对象数据库和通用的关系型数据库来开发网络物理习题库,可以充分发挥这两种数据库技术的长处。将习题以网页文件的形式存放在Zope/Plone的文档数据库内,借助Plone的直观易用的管理界面,可以非常方便地编辑、修改习题的内容,管理和查询亦非常方便。关系型数据库适宜存放整齐划一的数据格式。可以设计相应字段存放有关习题的信息,如题型、题分、难易、大纲要求等。使用关系型数据库的另一好处是可以充分发挥SQL的强大查询功能。两者之间的连接可以通过在关系型数据库中存放指向习题文件的路径来实现。
2 网络物理习题库建设实例
物理习题库的建设涉及题库结构的设计,习题的网络输入、增加、删除、检索和显示。下面结合Zope的对象数据库和通用的关系型数据库,给出一个具体设计实例。对象数据库方面的工作比较容易:根据物理教科书的章节目录创建相应的文件夹对象;根据习题内容创建相应网页文件对象;然后,通过Hone的管理界面将网页逐一导入对象数据库中即可。关系型数据库采用Gadny,集成在Zope中,操作采用SQL语言。
2.1设计习题库结构
在Gadfly中建立数据库的工作非常简单,只需在Vat\Gadfly目录下建立一个相应目录即可,如物理习题库,可建一个名为Physics的目录。目录建立后,对物理习题库进行操作产生的文件和数据,如建立的数据表及输入的记录便自动存放在这个目录下。
2.2建立数据库连接
作为内建的关系型数据库,建立和物理习题库的连接极其简单。在ZMI管理界面,进入Select Type to Add的添加框。从添加列表中选择Z Gadfly Database Connection会转入Gadfly数据库连接对象的添加表单。选择Physics数据源,设定连接的ID(如whk),单击添加按钮,便生成了一个Gadfly数据库连接对象。
在Gadfly数据库连接对象的设定页面中有:Status、Properties、Test、Browse等标签按钮。在测试页Test中,可以输入SQL语言对数据库进行交互操作,如创建数据表,对数据库记录进行增加、删除、检索等。在浏览页Browse中,可以观看库中的表及表的结构。
2.3创建存放物理习题的数据表
在设计中,需特别增加指向存放习题内容的网页文件的路径字段,只有这样,才能将关系型数据库和Zope的对象数据库有机地结合起来。例如创建名为Ps表,可在测试页Test中执行以下SOL语句:Create table p8(tx varchar,th varchar,zj yarchar,nr varchar,dispvar-char)
单击提交按钮Submit Query按钮,就运行这条SQL语句。此处的SQL语句将在Gadfly的Physics数据库中新建一个名为PS的表及相应索引。该表有5个字段:TX、TH、zJ、NR、DISP,分别是物理习题的题型、题号、章节、内容、描述。这儿的NR字段实际存放的是习题的URL地址,即网页文件的路径。要验证的话,可转到Browse浏览页。该页显示了数据库的表和它们的结构。
2.4物理习题的添加和删除
可通过测试页来添加物理习题记录。一个具体添加物理习题记录的SQL语句如下:insert into p8(tx,th,zjnr,disp)values(填空,1,力的合成,三个共点力的合成共点力的最小合力)
上述SQL语句在题库中增加了第一条填空题,为输入更多的物理习题,可多次输入相似的SQL语言。需要指出的是,插入的习题内容仅是一个超链接。/wuli/lx/tk/tl是调用文件的路径表达式。由对象ID组成。其中wuli、b1和tk是文件夹对象,t1是一个网页文件对象,存放习题的具体内容。如输入错误,可用delete from p8 where……语句进行删除。
2.5物理习题的查询和显示
通过Z SQL方法,可显示所有的习题或者符合某些条件的习题。添加z SQL方法的步骤如下:进入ZMI管理界面。从添加列表选择Z SQL Method,打开SQL方法的添加表单。表单中的ID一栏可输入list,Connection ID栏则输入wltk(已建立的用于连接Physics数据库的z GadflyDatabase Connection对象),在SQL语句框中输入如下SQL语言:select * from ps用于查询所有题目。改为select*from ps where……,就可查询满足一定条件的题目。
2.6随机查询的实现
能否从题库中随机抽取记录是用题库组卷的基础。在Zope中借助Python Script脚本对象和z SQL对象,可轻松实现随机出题的功能。具体步骤如下:先设计一个Python脚本调用上述z SQL方法,在获取题库里的记录后,运用Python的Random模块的Chioce函数,在记录集中随机选择随机记录并返回,最后设计一个页面模板插入脚本返回的结果,以网页形式显示。设计的页面模板主要代码如下:随机抽取习题</head> 随机题目1
语句structure here/random-item调用Python脚本Ran-dom-item,获取脚本返回的记录,Structure用于保证含有HTML标记的内容的正确显示。Random-item的代码如下:import random
num=random.choice(result),result=context.list()
return num.context
3 结束语
结合Zope的对象数据库和通用的关系型数据库来开发网络物理习题库,不仅可行,而且功能强大,使用方便。
关键词:教据库技术 教学网站 习题库 Zope
中图分类号:TP393.09 文献标识码:A 文章编号:1002-2422(2008)03-0042-02
1 数据库技术
Zope的对象数据库的设计思想,特别适合于文档管理,知识管理,群件系统等。Plone便是一个基于Zope而设计出的功能异常强大的内容管理系统。内容对象(如文件和文件夹)是Plone的主要对象。运用Plone强大的文档管理和发布功能,可对教学资源进行有效的整合和集成。采用Plone的文件和文件夹对象来组织网络习题库的最大优点是:可对所有习题文件和对应章节目录的文件夹,采用对象编程的思想进行管理。每一习题文件都自动具有ID、作者、创建时间、修改时间及所处的目录位置等属性;每一习题文件都可设置标题、内容描述、使用期限、关键字和相关联的其它习题文件等属性。属性可以继承,下一级文件夹自动继承上一级文件夹的属性。所有这些属性都被自动进行索引,存放在Hone的Portal_catalog中,并可通过管理界面增加新的索引。索引的建立提供了对库中文档的强大查询功能,使得习题库的使用变得极其方便。
结合Zope的对象数据库和通用的关系型数据库来开发网络物理习题库,可以充分发挥这两种数据库技术的长处。将习题以网页文件的形式存放在Zope/Plone的文档数据库内,借助Plone的直观易用的管理界面,可以非常方便地编辑、修改习题的内容,管理和查询亦非常方便。关系型数据库适宜存放整齐划一的数据格式。可以设计相应字段存放有关习题的信息,如题型、题分、难易、大纲要求等。使用关系型数据库的另一好处是可以充分发挥SQL的强大查询功能。两者之间的连接可以通过在关系型数据库中存放指向习题文件的路径来实现。
2 网络物理习题库建设实例
物理习题库的建设涉及题库结构的设计,习题的网络输入、增加、删除、检索和显示。下面结合Zope的对象数据库和通用的关系型数据库,给出一个具体设计实例。对象数据库方面的工作比较容易:根据物理教科书的章节目录创建相应的文件夹对象;根据习题内容创建相应网页文件对象;然后,通过Hone的管理界面将网页逐一导入对象数据库中即可。关系型数据库采用Gadny,集成在Zope中,操作采用SQL语言。
2.1设计习题库结构
在Gadfly中建立数据库的工作非常简单,只需在Vat\Gadfly目录下建立一个相应目录即可,如物理习题库,可建一个名为Physics的目录。目录建立后,对物理习题库进行操作产生的文件和数据,如建立的数据表及输入的记录便自动存放在这个目录下。
2.2建立数据库连接
作为内建的关系型数据库,建立和物理习题库的连接极其简单。在ZMI管理界面,进入Select Type to Add的添加框。从添加列表中选择Z Gadfly Database Connection会转入Gadfly数据库连接对象的添加表单。选择Physics数据源,设定连接的ID(如whk),单击添加按钮,便生成了一个Gadfly数据库连接对象。
在Gadfly数据库连接对象的设定页面中有:Status、Properties、Test、Browse等标签按钮。在测试页Test中,可以输入SQL语言对数据库进行交互操作,如创建数据表,对数据库记录进行增加、删除、检索等。在浏览页Browse中,可以观看库中的表及表的结构。
2.3创建存放物理习题的数据表
在设计中,需特别增加指向存放习题内容的网页文件的路径字段,只有这样,才能将关系型数据库和Zope的对象数据库有机地结合起来。例如创建名为Ps表,可在测试页Test中执行以下SOL语句:Create table p8(tx varchar,th varchar,zj yarchar,nr varchar,dispvar-char)
单击提交按钮Submit Query按钮,就运行这条SQL语句。此处的SQL语句将在Gadfly的Physics数据库中新建一个名为PS的表及相应索引。该表有5个字段:TX、TH、zJ、NR、DISP,分别是物理习题的题型、题号、章节、内容、描述。这儿的NR字段实际存放的是习题的URL地址,即网页文件的路径。要验证的话,可转到Browse浏览页。该页显示了数据库的表和它们的结构。
2.4物理习题的添加和删除
可通过测试页来添加物理习题记录。一个具体添加物理习题记录的SQL语句如下:insert into p8(tx,th,zjnr,disp)values(填空,1,力的合成,
上述SQL语句在题库中增加了第一条填空题,为输入更多的物理习题,可多次输入相似的SQL语言。需要指出的是,插入的习题内容仅是一个超链接。/wuli/lx/tk/tl是调用文件的路径表达式。由对象ID组成。其中wuli、b1和tk是文件夹对象,t1是一个网页文件对象,存放习题的具体内容。如输入错误,可用delete from p8 where……语句进行删除。
2.5物理习题的查询和显示
通过Z SQL方法,可显示所有的习题或者符合某些条件的习题。添加z SQL方法的步骤如下:进入ZMI管理界面。从添加列表选择Z SQL Method,打开SQL方法的添加表单。表单中的ID一栏可输入list,Connection ID栏则输入wltk(已建立的用于连接Physics数据库的z GadflyDatabase Connection对象),在SQL语句框中输入如下SQL语言:select * from ps用于查询所有题目。改为select*from ps where……,就可查询满足一定条件的题目。
2.6随机查询的实现
能否从题库中随机抽取记录是用题库组卷的基础。在Zope中借助Python Script脚本对象和z SQL对象,可轻松实现随机出题的功能。具体步骤如下:先设计一个Python脚本调用上述z SQL方法,在获取题库里的记录后,运用Python的Random模块的Chioce函数,在记录集中随机选择随机记录并返回,最后设计一个页面模板插入脚本返回的结果,以网页形式显示。设计的页面模板主要代码如下:
语句structure here/random-item调用Python脚本Ran-dom-item,获取脚本返回的记录,Structure用于保证含有HTML标记的内容的正确显示。Random-item的代码如下:import random
num=random.choice(result),result=context.list()
return num.context
3 结束语
结合Zope的对象数据库和通用的关系型数据库来开发网络物理习题库,不仅可行,而且功能强大,使用方便。