Django 错误:您的 URL 模式无效。确保 urlpatterns 是 url() 实例的列表
Posted
技术标签:
【中文标题】Django 错误:您的 URL 模式无效。确保 urlpatterns 是 url() 实例的列表【英文标题】:Django Error: Your URL pattern is invalid. Ensure that urlpatterns is a list of url() instances 【发布时间】:2016-12-11 16:55:59 【问题描述】:升级到 Django 1.10 后,运行python manage.py runserver
时出现以下错误:
?: (urls.E004) Your URL pattern ('^$', 'myapp.views.home') is invalid. Ensure that urlpatterns is a list of url() instances.
HINT: Try using url() instead of a tuple.
我的urlpatterns
如下:
from myapp.views import home
urlpatterns = [
(r'^$', home, name='home'),
]
【问题讨论】:
【参考方案1】:检查您是否使用过这样的 URL 模式:
urlpatterns += (
(r'^404/$', page_not_found_view),
)
改成:
urlpatterns += [
url(r'^404/$', page_not_found_view),
]
【讨论】:
【参考方案2】:为了简化 URL 配置,patterns()
在 Django 1.8 中被弃用,并在 1.10 (release notes) 中被删除。在 Django 1.10 中,urlpatterns
必须是 url()
实例的列表。不再支持在patterns()
中使用元组,Django 检查框架将引发错误。
解决这个问题很容易,只需转换任何元组
urlpatterns = [
(r'^$', home, name='home'), # tuple
]
致url()
实例:
urlpatterns = [
url(r'^$', home, name='home'), # url instance
]
如果收到以下NameError
,
NameError: name 'url' is not defined
然后将以下导入添加到您的urls.py
:
from django.conf.urls import url
如果您在 url 模式中使用字符串,例如'myapp.views.home'
,您必须更新这些以同时使用可调用对象。请参阅this answer 了解更多信息。
有关urlpatterns
的更多信息,请参阅Django URL dispatcher docs。
【讨论】:
以上是关于Django 错误:您的 URL 模式无效。确保 urlpatterns 是 url() 实例的列表的主要内容,如果未能解决你的问题,请参考以下文章
`eb deploy` 错误“您的 requirements.txt 无效”(Python 应用程序)