我是Django和ASP.NET MVC的新手。我只是想在下面创建一个文件夹结构,但是,如果我导航到http://localhost:8000/community_web/,这会给我一个错误,说“无法导入community_web.controllers.home。错误是:没有名为controllers.home的模块”。
文件夹结构我想要的。
<project>
urls.py
<community_web>
urls.py
<controllers>
home.py
我添加了以下代码 到project.urls.py
urlpatterns = patterns('',
(r'^community_web/', include('community_web.urls')),
)
至project.community_web.urls.py
urlpatterns = patterns('',
(r'^$', 'community_web.controllers.home.index'),
)
我认为views.py会对应ASP.NET MVC术语中的控制器,因此我不想将所有请求处理程序放在一个文件中。如果我将home.py移动到其父文件夹,它工作正常,但没有分层文件夹结构,在我不喜欢在一个文件夹中创建大量文件。我怎样才能做到这一点?或者不是Django的好习惯?
提前致谢,
柳
答案 0 :(得分:5)
尝试将__init__.py
弹出到目录controllers
中。这将使python可以看到的模块目录。
答案 1 :(得分:0)
这样做通常不是好习惯。但做你觉得舒服的事情。在控制器下你有一个init py文件吗?如果没有,它可能无法找到home.py文件。
你可以发布home.py的内容吗?可能存在导致其无法正确加载的内容。
答案 2 :(得分:0)
您是否已将'community_web'放入settings.py的已安装应用部分?
http://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'community_web',
)