Django中urlpatterns出现错误:没有名为views的模块。

3
在Django 1.7.x中,这个结构是可以工作的:
# urls.py

import views

urlpatterns = ('',
   url(r'^$', views.index)
)

在Django 1.8.X版本中,此方法已停止工作。当我运行默认的Django服务器时,会出现以下错误信息:

没有名为'views'的模块

我也尝试了以下方法:
from system.views import *

urlpatterns = ('',
   url(r'^$', views.index)
)

这导致出现以下内容:

名称“views”未定义

以及这个:
from system import views

urlpatterns = ('',
   url(r'^$', views.index)
)

我也尝试了很多在stackoverflow上看到的组合,但都没有起作用。希望有人可以分享哪个神奇的组合可以解决问题。
编辑:
\home
  \jacobian
     \apps
        \apps
          __init__.py
          settings.py
          urls.py
          views.py
          ...
       \system
          __init__.py
          urls.py
          views.py
          ...

你应该执行 from apps.your_app_name import views - Saurabh Goyal
请展示您的应用程序目录结构/树,以便我们更好地帮助您。 - Ozgur Vatansever
@说。它确实运行了数月,直到今天我切换到Django 1.8.x。 - Jacobian
@Jacobian 为什么你有两个 apps 目录? - Ozgur Vatansever
@ozgur 当我执行 $ django-admin startproject apps 命令时,它创建了如下的目录树。 - Jacobian
显示剩余2条评论
3个回答

3

我刚刚试图重现这个问题。看起来你是正确的,只有import views不再起作用。然而,对于我来说,下面的导入语句完全正常:

from . import views

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', views.index)
]

您可以在Django文档中查看示例。我认为这个相关的Stack Overflow问题可以澄清Dot Import语法的原因:
问: Python“from [dot] package import ...”语法

1

你应该包含来自所创建应用程序的views.py文件。尝试:

from <your app name>.views import *

1
你的陈述有点混淆。
在1.8版本之前,它是这样的:
from myapp import views

urlpatterns = patterns('',
    url('^$', views.myview),
    url('^other/$', views.otherview),
)

现在,从1.8版本开始,在分配urlpatterns时不需要第一个void参数给patterns。实际上,根本不需要调用patterns。
以下是我最新使用Django 1.8的项目示例:
urlpatterns = [
    url(r'^$', HomePage.as_view(), name='home'),
    url(r'^play/', include('play.urls', namespace='play', app_name='play')),
]

正如Django 1.8发布文档中所述:

因此,pattern()的作用很小,在教授新用户时是一种负担(回答新手的问题“为什么我需要这个空字符串作为patterns()的第一个参数?”)。因此,我们正在废弃它。更新您的代码就像确保urlpatterns是django.conf.urls.url()实例列表一样简单。例如:

from django.conf.urls import url
from myapp import views

urlpatterns = [
    url('^$', views.myview),
    url('^other/$', views.otherview),
]

太有用了!谢谢,Pynchia。 - Jacobian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接