在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
...
答案 0 :(得分:2)
我只是想重新创建这个问题。看来你是对的,只是import views
不再有效。但是,以下import语句对我来说很好:
from . import views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^$', views.index)
]
您可以在django documentation上看到示例。我也认为这个相关的Stack Overflow问题可以澄清它们对点导入语法的原因:
答案 1 :(得分:1)
您应该包含已创建的应用程序中的views.py文件。所以试试
from <your app name>.views import *
答案 2 :(得分:1)
你的陈述有点混乱。
在版本1.8之前,它是
from myapp import views
urlpatterns = patterns('',
url('^$', views.myview),
url('^other/$', views.otherview),
)
现在,从版本1.8开始,在分配patterns
时,urlpatterns
不需要第一个void参数。实际上根本不需要拨打patterns
。
以下是我使用Django 1.8的最新项目的一个示例:
urlpatterns = [
url(r'^$', HomePage.as_view(), name='home'),
url(r'^play/', include('play.urls', namespace='play', app_name='play')),
]
中所述
因此,模式()没有什么用处,在教学时也是一种负担 新用户(回答新手的问题“为什么我需要这个空的 string作为patterns()的第一个参数?“)。出于这些原因,我们 正在弃用它。更新代码就像确保代码一样简单 urlpatterns是django.conf.urls.url()实例的列表。 例如:
from django.conf.urls import url
from myapp import views
urlpatterns = [
url('^$', views.myview),
url('^other/$', views.otherview),
]