0

Web.py有自己的数据库 API,web.db。可以改用 SQLObject,但我找不到描述如何正确执行此操作的文档。我对管理数据库连接特别感兴趣。最好在 wsgi 入口点建立连接,然后重用它。Webpy 食谱包含如何使用 SQLAlchemy 执行此操作的示例。我很想知道如何使用 SQLObject 正确地做类似的事情。

这就是我目前的做法:

class MyPage(object):
  def GET(self):
    ConnectToDatabase()
    ....
    return render.MyPage(...)

这显然是低效的,因为它在每次查询时都建立一个新的数据库连接。我确信有更好的方法。

4

1 回答 1

0

据我了解给出的 SQLAlchemy 示例,使用了一个处理器,即为每个连接创建一个会话,并在处理程序完成时提交(或者如果发生错误则回滚)。

我没有看到任何简单的方法来执行您的建议,即在 WSGI 入口点打开一个连接。您可能需要一个连接池来同时为多个客户端提供服务。(不过,我不知道对效率、代码简单性等有什么要求。请评论。)

将调用插入ConnectToDatabase每个处理程序当然是丑陋的。我建议您修改说明书示例,将 SQLAlchemy 会话替换为 SQLObject 连接。

于 2011-12-07T18:43:34.593 回答