Pymongo和金字塔配置

时间:2011-09-01 09:17:07

标签: python pyramid pymongo

我正在尝试配置我的金字塔应用

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 :(得分:2)

这实际上是pyramid_debugtoolbar< = 0.9中的错误。升级到0.9.1或禁用调试工具栏。

答案 1 :(得分:1)

如果您仍然对pymongo和金字塔感兴趣,我建议您使用我的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 :(得分:0)

检查您的MongoDB URI,它应该采用此处描述的格式

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

的mongodb:// [用户名:密码@]主机1 [:端口1] [,主机2 [:端口2],... [,hostN [:端口n]]] [?/ [数据库] [选项]]

答案 3 :(得分:0)

我目前正在使用此处找到的解决方法: https://groups.google.com/group/pylons-discuss/browse_thread/thread/394fb7ae9838f840/5d7a24a1d899844f?hl=fr&lnk=gst&q=html+mongodb+#5d7a24a1d899844f

__init__.py中,就在

行之后
conn = pymongo.Connection(db_uri)

添加:

conn.__html__ = lambda: "mongodb connection"

这就足以使用金字塔食谱中描述的mongodb调试工具栏。