Django,路径/网址

时间:2018-11-16 16:53:05

标签: python django

请向我解释为什么以下代码可用于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是否不接受缺少某些类似索引的路径,所有内容都建立在该路径上吗?

2 个答案:

答案 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/。您将得到想要的结果。