【发布时间】:2017-07-18 07:45:46
【问题描述】:
我正在尝试配置 Django 并正在运行:
python manage.py runserver,它可以正确运行服务器,但是当我转到 http://127.0.0.1:8000/ 时,它给了我以下错误:
File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
return self.application(environ, start_response)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__
self.load_middleware()
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 45, in load_middleware
mw_class = import_by_path(middleware_path)
File "/usr/local/lib/python2.7/site-packages/django/utils/module_loading.py", line 26, in import_by_path
sys.exc_info()[2])
File "/usr/local/lib/python2.7/site-packages/django/utils/module_loading.py", line 21, in import_by_path
module = import_module(module_path)
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
ImproperlyConfigured: Error importing module django.middleware.security: "No module named security"
不知道是什么问题,但是在网上查看时,我发现了一些关于中间件排序的问题。所以这是我的settings.py 文件中的中间件:
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
如何解决这个错误?
【问题讨论】:
-
您是否激活了安装所需python包的环境?
-
可能是django版本不匹配造成的。你安装了什么django版本?这个项目是用什么 django 版本制作的?一个常见的错误是
pip install django,但这只会获取最新版本。 -
尝试从中间件类中删除 django.middleware.security.SecurityMiddleware
-
您使用的是哪个版本的 Django?在 1.8 版本中添加了安全中间件。
标签: python django configuration middleware