请向我解释为什么以下代码可用于http://127.0.0.1:8000/index/1/而不适用于http://127.0.0.1:8000/1/:
mysite \ urls.py
urlpatterns = [
path('index/', include('polls.urls')),
path('1/', include ('polls.urls')),
]
polls \ urls.py
urlpatterns = [
path('1/', views.polls, name='z'),
path('', views.index, name='index'),
]
Django是否不接受缺少某些类似索引的路径,所有内容都建立在该路径上吗?
答案 0 :(得分:2)
尝试在mysite中使用您的urlpatterns仅使用一个路径,然后像这样在您的polls / url.py内部映射路径
mysite / urls.py
urlpatterns = [
path('polls/', include('polls.urls')),
]
并轮询/urls.py
urlpatterns = [
path('1/', views.polls, name='z'),
path('', views.index, name='index'),
]
如果您使用基于类的视图(CBV),请确保在urlpatterns中使用.as_view():)希望这会有所帮助!
答案 1 :(得分:1)
根据您的代码,所有路径都将是,
http://127.0.0.1:8000/index/1/
http://127.0.0.1:8000/index/
http://127.0.0.1:8000/1/1/
http://127.0.0.1:8000/1/
在这些中,与您的views.py中的民意测验相关的两个URL是http://127.0.0.1:8000/index/1/
和http://127.0.0.1:8000/1/1/
正如您在标题中所提到的,http://127.0.0.1:8000/index/1/
有用而http://127.0.0.1:8000/1/
无效是因为您请求的URL错误。您请求的网址不用于视图。投票将其更改为http://127.0.0.1:8000/1/1/
。您将得到想要的结果。