python - 如何集成 Pyramid 1.1 和 Mongodb - 尽可能少的行

标签 python mongodb pyramid

目标:我尝试将 Mongo DB 与 Pyramid 1.1 基本应用程序集成。

背景:应用程序是由本书 (https://docs.pylonsproject.org/projects/pyramid/1.1/narr/project.html#creating-the-project) 使用基本命令创建的“粘贴创建-t pyramid_starter”

我关注了这篇食谱文章:https://docs.pylonsproject.org/projects/pyramid_cookbook/dev/mongo.html

问题:似乎每当我将 MongoDB 连接添加到请求中时,我都会遇到“内部服务器错误”

我试了好几篇文章,貌似必须多启动debug系统? 有没有人为此找到简单的解决方案?

如果对专家有帮助则异常(exception)

Exception happened during processing of request from ('127.0.0.1', 53697)
Traceback (most recent call last):
    File "virtualenv\lib\site-packages\paste-1.7.5.1-py2.7.egg\paste\httpserver.py", line 1068, in process_request_in_thread
self.finish_request(request, client_address)
    File "C:\Python27\Lib\SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
    File "C:\Python27\Lib\SocketServer.py", line 639, in __init__
    self.handle()
    File "virtualenv\lib\site-packages\paste-1.7.5.1-py2.7.egg\paste\httpserver.py", line 442, in handle
    BaseHTTPRequestHandler.handle(self)
    File "C:\Python27\Lib\BaseHTTPServer.py", line 343, in handle
    self.handle_one_request()
...
    File "C:\Python27\lib\site-packages\pyramid_debugtoolbar-0.8-py2.7.egg\pyramid_debugtoolbar\panels\__init__.py", line 24, in render
    return render(template_name, vars, request=request)
    File "virtualenv\lib\site-packages\pyramid-1.2a1-py2.7.egg\pyramid\renderers.py", line 69, in render
    return helper.render(value, None, request=request)
    File "virtualenv\lib\site-packages\pyramid-1.2a1-py2.7.egg\pyramid\renderers.py", line 418, in render
    result = renderer(value, system_values)
    File "C:\Python27\lib\site-packages\pyramid_jinja2-1.1-py2.7.egg\pyramid_jinja2\__init__.py", line 277, in __call__
    return self.template.render(system)
    File "C:\Python27\lib\site-packages\jinja2-2.6-py2.7.egg\jinja2\environment.py", line 894, in render
    return self.environment.handle_exception(exc_info, True)
    File "C:\Python27\lib\site-packages\pyramid_debugtoolbar-0.8-py2.7.egg\pyramid_debugtoolbar\panels\templates\request_vars.jinja2", line 110, in top-level template code
    <td>{{ value|escape }}</td>
    File "virtualenv\lib\site-packages\markupsafe-0.15-py2.7.egg\markupsafe\_native.py", line 20, in escape
    return s.__html__()
    File "virtualenv\lib\site-packages\pymongo-2.0.1-py2.7-win-amd64.egg\pymongo\collection.py", line 1156, in __call__
    self.__name)
   TypeError: 'Collection' object is not callable. If you meant to call the '__html__' method on a 'Database' object it is failing because no such method exists.

最佳答案

另一种可能的解决方案是使用配置文件中的“debugtoolbar.panels”设置来禁用 request_vars 面板(这是导致问题的原因):

[app:main]
.. other stuff ...
debugtoolbar.panels =
    pyramid_debugtoolbar.panels.versions.VersionDebugPanel
    pyramid_debugtoolbar.panels.settings.SettingsDebugPanel
    pyramid_debugtoolbar.panels.headers.HeaderDebugPanel
#    pyramid_debugtoolbar.panels.request_vars.RequestVarsDebugPanel
    pyramid_debugtoolbar.panels.renderings.RenderingsDebugPanel
    pyramid_debugtoolbar.panels.logger.LoggingPanel
    pyramid_debugtoolbar.panels.performance.PerformanceDebugPanel
    pyramid_debugtoolbar.panels.routes.RoutesDebugPanel
    pyramid_debugtoolbar.panels.sqla.SQLADebugPanel

关于python - 如何集成 Pyramid 1.1 和 Mongodb - 尽可能少的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201969/

相关文章:

python - 如果在 Pyramid 中配置了一个类的 View ,是否可以使用为父类(super class)配置的 View ?

python - Pyramid 遍历和 URL 调度程序和不同的根

python - Python程序到网站应用程序

python - App Engine Python 身份验证自定义重定向

python - 如何逐行读取大文件?

javascript - MongoDB 投影将子对象作为列返回

node.js - 服务器中的 MongoDB 聚合()错误

python - 没有 PYTHONPATH 时的 PYTHONPATH 是什么?

python - 查找重复的单词,仅第一次出现

mongodb - 将 2 个 mongoDB 集合中的数据合并到 1 个文档中