首页 > 解决方案 > Django - URL 配置

问题描述

这是我想问的问题,如果我尝试此代码,我可以进入登录页面,但我的网址看起来像这样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>

标签: djangodjango-urls

解决方案


尝试这个:

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

条目的顺序很重要,并且总是添加一个尾随/,除非你有 root 喜欢views.index


推荐阅读