2017-08-18 39 views
0

我的项目urls.py无法导入模式在Django 1.11.4

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('', url(r'^hello/', 'myapp.views.hello', name = 'hello'),) 

现在,只要我尝试运行它,它会给我以下错误:

from django.conf.urls import patterns, include, url 
ImportError: cannot import name 'patterns' 
+0

取决于您的django版本,您可能需要'from django.conf.urls.detault import patterns'而不是 – RHSmith159

+1

请注意,您可以在Django 1.7+中删除'admin.autodiscover()'。 – Alasdair

回答

4

Django不要求你再使用的模式,你可以让urlpatterns网址

urlpatterns = [url(r'^hello/', 'myapp.views.hello', name = 'hello'),] 
+2

这解决了一半的问题。然后你需要导入[用可调用的字符串替换'myapp.views.hello'](https://stackoverflow.com/questions/38744285/)。 – Alasdair

+1

@Alasdair - 是的,那是真的。虽然我不想破坏OP的所有研究:) – Sayse

1

Django的1.11加载该Python模块的列表,并查找urlpatterns变量。这应该是django.conf.urls.url()实例的Python列表。

而且它贯穿每个URL模式,从而,在相匹配的请求的URL

不要要求patterns更多的第一个停止。

urlpatterns应该是url()实例的Python列表。