请求JSON解码错误及404页面问题排查求助
问题分析与解决
核心问题
根URL配置错误
项目根urls.py中,path('/api/products/', include("products.urls"))的路径开头多了斜杠。Django的path()函数要求路径参数不能以斜杠开头,否则会导致URL匹配逻辑异常,直接返回404。JSON解析失败的连锁反应
因为URL匹配失败返回的是HTML格式的404页面,而非预期的JSON数据,所以requests库尝试解析JSON时触发JSONDecodeError。
修复方案
修改根urls.py,去掉api/products/路径开头的斜杠:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include("new_api.urls")), # 修正:移除路径开头的斜杠 path('api/products/', include("products.urls")) ]
修复后,http://localhost:8000/api/products/1会正确匹配到products.urls中的<int:pk>/路由,触发ProductDetailAPIview返回JSON格式的产品详情,requests库能正常解析响应,错误即可消除。
内容的提问来源于stack exchange,提问作者cza_ptas42
相关产品推荐
相关产品推荐

