无法导入名称 patterns

80 投票
9 回答
133029 浏览
提问于 2025-04-17 06:01

在我写了urls.py之前,我的代码...一切都运行得很好。现在我遇到了问题 - 无法访问我的网站。“无法导入名称 patterns”

我的urls.py是:

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

他们说错误就在这里的某个地方。

9 个回答

21

是的:

from django.conf.urls.defaults import ... # is for django 1.3
from django.conf.urls  import ...         # is for django 1.4

我也遇到过这个问题。

162

从Django 1.10开始,patterns模块被移除了(自1.8版本起就已经不推荐使用了)。

幸运的是,删除这些不再使用的代码应该很简单,因为现在urlpatterns 应该存放在一个普通的列表里

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    # ... your url patterns
]
30

你不需要那些导入的内容。在你的urls.py文件里,最开始只需要写这个:

from django.conf.urls.defaults import *

# This two if you want to enable the Django Admin: (recommended)
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    # ... your url patterns
)

注意:这个解决方案是针对Django 1.6之前的版本的。其实这是Django自己生成的代码。对于新版本,请参考Jacob Hume的回答。

撰写回答