Web services 带有轻量级web服务器的ZODB
出于学术目的,我需要开发一个演示应用程序,将ZODB与一些轻量级web服务器结合使用,比如CherryPy。ZODB是以只读方式使用的。客户端查询服务器端ZODB。服务器应该“有多个进程同时访问ZODB” Zope文档说“ZEO是让多个进程同时访问ZODB的唯一方法。”但是我应该如何理解和实现ZEO呢? 为了清晰起见,我编写了一些代码,只是一个简单的TCP服务器:Web services 带有轻量级web服务器的ZODB,web-services,zodb,Web Services,Zodb,出于学术目的,我需要开发一个演示应用程序,将ZODB与一些轻量级web服务器结合使用,比如CherryPy。ZODB是以只读方式使用的。客户端查询服务器端ZODB。服务器应该“有多个进程同时访问ZODB” Zope文档说“ZEO是让多个进程同时访问ZODB的唯一方法。”但是我应该如何理解和实现ZEO呢? 为了清晰起见,我编写了一些代码,只是一个简单的TCP服务器: import SocketServer import ZODB from ZEO import ClientStorage from
import SocketServer
import ZODB
from ZEO import ClientStorage
from ZODB.DB import DB
addr = ('localhost', 9999)
storage = ClientStorage.ClientStorage(addr)
zdb = DB(storage)
# or the following method:
# import ZODB.config
# zdb = ZODB.config.databaseFromURL('zeo.conf')
class MyTCPHandler(SocketServer.BaseRequestHandler):
def ZODBThing(self, rec_id):
con = zdb.open()
records = con.root()['records']
buff=records[int(rec_id)]
con.close()
return buff
def handle(self):
self.data = self.request.recv(1024).strip()
self.request.sendall(str(self.ZODBThing(self.data)))
if __name__ == "__main__":
HOST, PORT = "localhost", 9998
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
zdb.close()
storage.close()
- 以上代码代表了我对ZEO用法的理解。我需要知道我的理解是对还是错。
- zeoctl.exe的目的和用途是什么?