Django提示当前路径不匹配,已配置urls.py仍找不到timer视图如何解决
Django路径无法匹配timer视图问题排查
问题1:主路由导入语法错误
你项目主路由convers/urls.py第一行存在拼写错误,将导入关键字from错写为form,会直接导致路由模块加载失败,所有路径匹配逻辑都无法正常执行:
# 错误写法 form django.contrib import admin # 修正写法 from django.contrib import admin
问题2:子应用未注册
你没有将子应用convers_app添加到项目settings.py的INSTALLED_APPS配置列表中,Django默认不会加载未注册子应用的路由、视图、模板等资源:
# settings.py 中INSTALLED_APPS添加对应配置 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增子应用注册 'convers_app', ]
问题3:子路由路径规则不规范
子应用convers_app/urls.py中timer路径未加尾斜杠/,如果Django默认配置APPEND_SLASH = True未修改,访问不带斜杠的路径会触发301重定向,若关闭该配置则会直接返回404,修正为规范写法:
# 错误写法 path('timer', views.timer, name='timer') # 修正写法 path('timer/', views.timer, name='timer')
问题4:视图函数缩进错误
你贴出的views.py代码中,timer函数的return语句没有缩进,Python对缩进语法要求严格,该错误会导致函数定义失效,视图无法正常加载:
# 错误写法 def timer(request): return render(request, 'timer.html') # 修正写法 def timer(request): return render(request, 'timer.html')
补充访问路径说明
你将子应用路由挂载到了c/和conversapp/两个前缀下,因此timer视图的正确访问路径为:
http://你的服务地址/conversapp/timer/http://你的服务地址/c/timer/
直接访问/timer/无法匹配到对应路由规则。
内容的提问来源于stack exchange,提问作者Yotam
相关产品推荐
相关产品推荐

