Django路径匹配错误求助:输入URL无法匹配URL模式
Django路径不匹配问题解决
问题核心
你当前的URL配置会做路径拼接:
- 项目URLs中的
path("hello/", include('testApp.urls'))会拦截开头为/hello/的请求 - 应用URLs中的
path('hello/', views.say_hello)会在上述基础上再匹配/hello/
所以正确的访问URL应该是 http://127.0.0.1:8000/hello/hello/
两种调整方案(按需选择)
方案一:修改项目URLs.py
去掉项目侧的路径前缀,让应用URLs直接处理hello路径:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path("admin/", admin.site.urls), path("", include('testApp.urls')), # 删除hello前缀 ]
应用URLs保持不变,此时访问http://127.0.0.1:8000/hello/即可触发视图。
方案二:修改应用URLs.py
将应用侧的路径设为空,让项目的hello前缀直接映射到视图:
from django.urls import path from . import views urlpatterns = [ path('', views.say_hello) # 删除hello路径 ]
此时访问http://127.0.0.1:8000/hello/即可正常访问。
额外必查项
确认已在项目settings.py的INSTALLED_APPS中注册testApp:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'testApp', # 确保存在这一行 ]
内容的提问来源于stack exchange,提问作者elgulfsurfer
相关产品推荐
相关产品推荐

