繁体   English   中英

urlpatterns中的Django错误:没有名为视图的模块

[英]Django error in urlpatterns: No module named views

在Django 1.7.x中,此构造有效:

# urls.py

import views

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

在Django 1.8.X中,它停止工作。 现在,当我运行默认的Django服务器时,我收到此错误消息:

没有名为“视图”的模块

我也试过这个:

from system.views import *

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

结果是:

名称“视图”未定义

和这个:

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
          ...

我只是试图重新创建此问题。 看来您是正确的,只是import views不再起作用。 但是,以下导入语句对我来说很好:

from . import views

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

您可以在django文档上看到一个示例。 我也认为这个相关的堆栈溢出问题可以阐明它们使用点导入语法的原因:

问: Python“从[dot] package import ...”语法

您应该包括已创建的应用程序中的views.py文件。 所以尝试

from <your app name>.views import *

您的发言有点复杂。

在1.8版之前

from myapp import views

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

现在,从1.8版开始,在分配urlpatterns时, urlpatternspatterns使用第一个void参数。 实际上,根本不需要调用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版本文档所述

因此,patterns()用途不大,在教新用户时是一个负担(回答新手的问题“为什么我需要这个空字符串作为patterns()的第一个参数?”)。 由于这些原因,我们不建议使用。 更新代码就像确保urlpatterns是django.conf.urls.url()实例的列表一样简单。 例如:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM