Django视图与URL配置连接问题:访问根路径出现匹配错误
解决Django根路径访问时的空路径未匹配错误
问题原因
当前配置中,项目根urls.py将空路径''包含了MyApp.urls,但MyApp.urls里仅定义了MyApp/这个路径规则。当访问根路径http://127.0.0.1:8000时,Django在MyApp.urls中找不到匹配空路径的规则,因此抛出错误。
解决方案
以下三种方案任选其一即可:
方案1:修改App目录下的urls.py,将视图映射到空路径
把App内的URL规则改为匹配空路径,这样项目根路径导入后就能直接命中视图:
from django.urls import path from . import views urlpatterns = [ path('', views.MyApp, name='MyApp'), # 将'MyApp/'替换为空字符串 ]
方案2:在项目目录的urls.py中直接映射根路径到视图
无需修改App的URL配置,直接在项目根urls.py中添加根路径的映射规则:
from django.contrib import admin from django.urls import path,include from MyApp import views # 导入App的视图模块 urlpatterns = [ path('', views.MyApp, name='MyApp'), # 直接将根路径指向MyApp视图 path("admin/", admin.site.urls), ]
方案3:保留原有MyApp/路径,同时添加根路径重定向
如果需要保留/MyApp/的访问路径,同时让根路径自动跳转到该地址,可以使用Django的RedirectView:
修改App目录下的urls.py:
from django.urls import path from django.views.generic.base import RedirectView from . import views urlpatterns = [ path('MyApp/', views.MyApp, name='MyApp'), path('', RedirectView.as_view(pattern_name='MyApp', permanent=True)), # 根路径重定向到MyApp ]
内容的提问来源于stack exchange,提问作者Hyun Kim
相关产品推荐
相关产品推荐

