Django - URL配置

问题描述 投票:0回答:1

有件事我想问一下,如果我尝试这段代码,我可以进入登录页面,但我的网址看起来是这样的。http://127.0.0.1:8000/%2Flogin/. 这是什么?%2F?

urlpatterns = [
path("", views.index, name="index"),
path("<str:slug>", views.redirect, name='redirect'),
path('/login/', views.logIn, name='login')]

我把登录网址中的斜线去掉,得到一个错误信息。

未找到页面 (404) 请求方法。 GET请求URL。 http:/127.0.0.1:8000/login

去掉斜杠后,下面是代码

urlpatterns = [
path("", views.index, name="index"),
path("<str:slug>", views.redirect, name='redirect'),
path('login', views.logIn, name='login')]

所以,我想知道的是,为什么斜线会影响登录的网址,而不是 <str:slug>

django django-urls
1个回答
1
投票

试试这个。

urlpatterns = [
    path("login/", views.logIn, name='login'),
    path("<str:slug>/", views.redirect, name='redirect'),
    path("", views.index, name="index")
]

条目的顺序很重要,一定要在后面加上一个尾巴。/,除非你有根像 views.index

© www.soinside.com 2019 - 2024. All rights reserved.