没有名为 index 的模块
我遇到了一个错误,提示异常值:没有名为 index 的模块。我在 DjangoPhoneBook 和 phonebook 文件夹里都有 __init__.py
文件。我是 Django 新手,正在按照 djangoproject 网站上的教程学习。我在网上搜索了这个错误,但没有找到解决办法。
这个问题的原因和解决方法是什么呢?
Environment:
Request Method: GET
Request URL: http://localhost:8000/Book/
Django Version: 1.2.3
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'phonebook',
'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py" in get_response
91. request.path_info)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
217. sub_match = pattern.resolve(new_path)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in resolve
215. for pattern in self.url_patterns:
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in _get_url_patterns
244. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib/pymodules/python2.6/django/core/urlresolvers.py" in _get_urlconf_module
239. self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/pymodules/python2.6/django/utils/importlib.py" in import_module
35. __import__(name)
Exception Type: ImportError at /Book/
Exception Value: No module named index
urls.py 的内容是
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
from DjangoPhoneBook.phonebook.views import *
urlpatterns = patterns('',
(r'^Book/$', include('index'))
(r'^admin/', include(admin.site.urls)),
)
views.py 的内容是
from django.http import HttpResponse
def index(request):
return HttpResponse("This is a view page")
1 个回答
11
把你第一行的 include
去掉。 include
是用来添加一个单独的 URL 配置的语法,所以 Python 正在寻找一个叫 index
的 module
。
把它改成你视图函数的完整 Python 点路径。
urlpatterns = patterns('',
(r'^Book/$', 'path.to.my.views.index'), # <-- and add a comma here
(r'^admin/', include(admin.site.urls)),
)
补充:我注意到你在导入你的视图函数。你也可以直接指定视图函数本身。
urlpatterns = patterns('',
(r'^Book/$', index),
(r'^admin/', include(admin.site.urls)),
)