werkzeug+Django+gunicorn:类型E

2024-05-18 16:17:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是werkzeug的新手,当我在安装和设置之后试图访问测试页面时,我得到了一个“TypeError:init()至少有2个参数(1个给定)”。Werkzeug确实提供了回溯(见下文)。我已经看了这些和我的设置没有成功。在

我安装了以下软件包:

django_extensions
werkzeug

将以下内容添加到我的Django设置文件中:

^{pr2}$

创造了一个_wsgi.py我从我的gunicorn驱动程序脚本调用的文件:

# basic wsgi.py
import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my-site.settings.dev')

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Werkzeug-specific
import django.views.debug

def null_technical_500_response(request, exc_type, exc_value, tb):
    raise exc_type, exc_value, tb
django.views.debug.technical_500_response = null_technical_500_response

# apply Werkzeug WSGI middleware
from werkzeug.debug import DebuggedApplication
application = DebuggedApplication(application, evalex=True)

但是现在当我查看一个测试URL时,我会得到以下回溯:

File "/python2-venv/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
self.load_middleware()
File "/python2-venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 49, in load_middleware
mw_instance = mw_class()
TypeError: __init__() takes at least 2 arguments (1 given)

在dev中注释出Werkzeug的特定行_wsgi.py允许我的测试页正确显示。我使用的是Werkzeug 0.9.4、django_扩展1.3.3、django 1.6.4和Python 2.7.6。在


Tags: djangopycoredebugimportwsgiapplicationresponse
1条回答
网友
1楼 · 发布于 2024-05-18 16:17:09

werkzeug.debug.DebuggedApplication是WSGI中间件,而不是Django中间件。Django中间件不需要__init__的参数,而是添加到MIDDLEWARE_CLASSES中。WSGI中间件对要包装的WSGI应用程序__init__至少有一个参数。您试图同时使用它,但修复很简单。从MIDDLEWARE_CLASSES设置中删除{}。在

相关问题 更多 >

    热门问题