django 1.10 url 调度程序不工作
django 1.10 url dispatcher not working
我正在尝试简单地为应用 url 提供 /headless/
选项,以使其显示不同的模板。
我的 project/urls.py
有:
urlpatterns = [
url(r'^datastore/', include('datastore.urls')),
]
我的 app/urls.py
有:
app_name = 'datastore'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^datastore/(?P<headless>"headless"{1})/$', views.index,name='index'),
]
我收到上述 404 错误。
我也试过:
url(r'^datastore/(?P<headless>"headless"?)/$',
url(r'^datastore/(?P<headless>\w{1})/$', views.index, name='index'),
url(r'^datastore/(?P<headless>\w+)/$', views.index, name='index'),
您必须从应用中删除前缀 /datastore/
urlpattern
:
app_name = 'datastore'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<headless>"headless"{1})/$', views.index,name='index'),
]
Whenever Django encounters include()
, it chops off whatever part of
the URL matched up to that point and sends the remaining string to the
included URLconf for further processing.
因此,项目设置中的 url 模式使用了 datastore/
前缀。您应该能够通过尝试 /datastore/datastore/headless/
(这应该适用于您当前的配置)来检查是否如此。
但是请注意,正则表达式的组合匹配 /datastore/headless/
或 /datastore//
(在所有变体中都相同)。这可能不是你想要的。 Wilfried 的回答(这里没有解决真正的问题)向您展示了如何更好地完成我认为您打算做的事情。
这可能是您 url 上的正则表达式。
如果您需要访问 url:
/数据存储/
/datastore/headless/
您可以创建两个 url,指向同一个视图。
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^datastore/$', views.index, name='index'),
url(r'^datastore/(?P<headless>(headless))/$', views.index, name='index'),
]
如果你愿意,没有必要使用参数。如果你只有无头之类的可能性。
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^datastore/$', views.index, name='index'),
url(r'^datastore/headless/$', views.index, name='index'),
]
我正在尝试简单地为应用 url 提供 /headless/
选项,以使其显示不同的模板。
我的 project/urls.py
有:
urlpatterns = [
url(r'^datastore/', include('datastore.urls')),
]
我的 app/urls.py
有:
app_name = 'datastore'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^datastore/(?P<headless>"headless"{1})/$', views.index,name='index'),
]
我收到上述 404 错误。
我也试过:
url(r'^datastore/(?P<headless>"headless"?)/$',
url(r'^datastore/(?P<headless>\w{1})/$', views.index, name='index'),
url(r'^datastore/(?P<headless>\w+)/$', views.index, name='index'),
您必须从应用中删除前缀 /datastore/
urlpattern
:
app_name = 'datastore'
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<headless>"headless"{1})/$', views.index,name='index'),
]
Whenever Django encounters
include()
, it chops off whatever part of the URL matched up to that point and sends the remaining string to the included URLconf for further processing.
因此,项目设置中的 url 模式使用了 datastore/
前缀。您应该能够通过尝试 /datastore/datastore/headless/
(这应该适用于您当前的配置)来检查是否如此。
但是请注意,正则表达式的组合匹配 /datastore/headless/
或 /datastore//
(在所有变体中都相同)。这可能不是你想要的。 Wilfried 的回答(这里没有解决真正的问题)向您展示了如何更好地完成我认为您打算做的事情。
这可能是您 url 上的正则表达式。
如果您需要访问 url:
/数据存储/
/datastore/headless/
您可以创建两个 url,指向同一个视图。
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^datastore/$', views.index, name='index'),
url(r'^datastore/(?P<headless>(headless))/$', views.index, name='index'),
]
如果你愿意,没有必要使用参数。如果你只有无头之类的可能性。
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^datastore/$', views.index, name='index'),
url(r'^datastore/headless/$', views.index, name='index'),
]