Pymongo与Pyramid配置

2 投票
4 回答
600 浏览
提问于 2025-04-17 01:02

我正在尝试像下面这样配置我的Pyramid应用:

https://github.com/niallo/pyramid_mongodb/blob/master/pyramid_mongodb/paster_templates/pyramid_mongodb/+package+/init.py_tmpl

但是在这一行 config.registry.settings['mongodb_conn'] = conn 时出现了错误:

  File "/usr/local/lib/python2.6/dist-packages/pymongo-2.0.1-py2.6-linux-i686.egg/pymongo/database.py", line 682, in __call__
    "failing because no such method exists." % self.__name)
TypeError: 'Database' object is not callable. If you meant to call the '__html__' method on a 'Connection' object it is failing because no such method exists.

这是怎么回事呢?

4 个回答

0

检查一下你的MongoDB连接地址,它应该按照这里描述的格式来写。

http://www.mongodb.org/display/DOCS/Connections

这个连接地址的格式是这样的:mongodb://[用户名:密码@]主机1[:端口1][,主机2[:端口2],...[,主机N[:端口N]]][/[数据库][?选项]]

1

如果你对pymongo和pyramid还感兴趣,我推荐你使用我的pyramid_mongo这个包。

你可以在这里找到它:

http://pypi.python.org/pypi?:action=display&name=pyramid_mongo&version=0.1

文档也在这里:

http://packages.python.org/pyramid_mongo/

这个包的功能比单纯的框架要多一点。跟pyramid_mongodb不同,它试图模仿zodb这个包,还可能有一些其他很酷的功能,比如支持遍历。我一直没能抽出很多时间来完善它,但总有一天会发布的。目前来说,用mongodb已经足够了。

2

这其实是一个在pyramid_debugtoolbar版本0.9及以下的错误。你可以升级到0.9.1版本,或者关闭调试工具栏。

撰写回答