Django访问imgupload/imageprocess路径无匹配URL规则如何解决
问题根因
Django对include引入的子应用URL会直接拼接父路径和子路径的字符串,你当前配置的父路径imgupload末尾没有斜杠,子路径imageprocess开头也没有斜杠,拼接后得到的实际路径为imguploadimageprocess,和你要访问的imgupload/imageprocess不一致,因此触发路径匹配失败的报错。
修复步骤
1. 修改项目根目录urls.py配置
将根urls.py中引入imgupload应用的路径末尾添加斜杠,修改后代码如下:
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('imgupload/', include('imgupload.urls')), path('admin/', admin.site.urls), ]
修改后父路径和子路径会正确拼接为imgupload/imageprocess,即可匹配成功。
2. 可选优化:替换模板硬编码路径
为了避免后续路径调整需要同步修改模板中的硬编码地址,建议将home.html中的form action属性替换为Django自带的URL反向解析写法:
<form action="{% url 'imageprocess' %}" method="POST" enctype="multipart/form-data">
只要URL的name属性保持不变,后续调整路径前缀不需要修改模板代码,维护成本更低。
修改完成后重启Django开发服务器,再次提交表单即可正常访问result页面。
内容的提问来源于stack exchange,提问作者Aditya Salve
相关产品推荐
相关产品推荐

