Django REST传递URL参数时返回404错误求助
Django REST API URL配置404问题解决
问题原因
你后端用的是Django的url()正则路由函数,但路径里错误混用了path()函数的路径转换器语法(<str:accion>),正则表达式不识别这种写法,导致带accion参数的请求无法匹配路由,返回404。
修复方案
把正则路由里的<str:accion>替换成正则命名捕获组的写法:
修改后的后端URL配置
url(r'^' + baseurl + etl + eph + r'salud_folder_xls/listar/(?P<accion>[^/]+)/', etlEPHSaludXLSListar), url(r'^' + baseurl + etl + eph + r'salud_folder_xls/descargar/(?P<nombre_archivo>.+\.xls)', etlEPHDescargarSaludFolderXLS),
- 说明:
(?P<accion>[^/]+)是正则命名捕获组,匹配除斜杠外的任意字符,实现你原本想要的str:accion参数捕获效果。 - 注意给正则字符串加
r前缀,避免转义字符干扰匹配逻辑。
验证
修改完成后,前端请求/etl/v1/eph/salud_folder_xls/listar/perro/就能正确匹配到etlEPHSaludXLSListar视图,不会再返回404。
如果你的Django版本是2.0及以上,更推荐用path()函数,写法更简洁直观:
path(baseurl + etl + eph + 'salud_folder_xls/listar/<str:accion>/', etlEPHSaludXLSListar),
内容的提问来源于stack exchange,提问作者nepko
相关产品推荐
相关产品推荐

