Django - urlpatterns找不到模块

时间:2011-04-19 02:14:02

标签: django

我是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的好习惯?

提前致谢,

3 个答案:

答案 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',
)