You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django REST API出现{detail: Not Found} 404错误求助

Django REST API端点404问题排查与解决

问题描述

我搭建了一个用于管理Google Cloud SQL数据库文件上传与下载的Python Django REST API,项目启动正常,能成功连接数据库,访问http://127.0.0.1:8000/也正常,但测试端点(如http://127.0.0.1:8000/upload)时返回404错误,响应内容为{"detail": "Not Found"}。

应用启动控制台日志:

Could not find platform independent libraries <prefix>
Could not find platform independent libraries <prefix>
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 18, 2024 - 19:03:09
Django version 5.0.6, using settings 'JurisScan_REST_API.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

问题根源

从提供的项目文件分析,404错误由以下路由配置问题导致:

  1. 根路由引用错误:项目根urls.py中配置了path('api/', include('myapp.urls')),但实际应用名称为JurisScan_REST_API(从settings.py的INSTALLED_APPS和应用内路由文件路径可确认),引用的myapp.urls不存在。
  2. 端点路径前缀缺失:当前直接访问/upload,但根路由给API接口加了api/前缀,正确路径应为/api/upload/。
  3. 路径参数格式错误:应用内urls.py中get_user_files的参数被转义为&lt;str:user_id&gt;,Django无法识别该格式的路径参数。

解决方案

1. 修正根路由配置

修改项目根目录下的urls.py,将引用的应用路由改为正确的JurisScan_REST_API.urls:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('JurisScan_REST_API.urls')),  # 修正应用名称
]

2. 修正应用内路由的参数格式

修改JurisScan_REST_API/urls.py(即你标注的REST_API/urls.py),将转义的参数格式改回标准写法:

from django.urls import path
from .views import UploadFileView, GetUserFilesView

urlpatterns = [
    path('upload/', UploadFileView.as_view(), name='file-upload'),
    path('get_user_files/<str:user_id>/', GetUserFilesView.as_view(), name='get-user-files'),  # 修正参数格式
]

3. 使用正确的端点URL测试

  • 上传文件端点:POST http://127.0.0.1:8000/api/upload/
  • 获取用户文件端点:GET http://127.0.0.1:8000/api/get_user_files/[你的user_id]/

额外注意事项

  • 执行迁移命令:日志提示有18个未应用的迁移,运行python manage.py migrate完成数据库迁移,避免后续功能异常。
  • CSRF验证:开发环境测试POST请求时,可暂时关闭CSRF中间件(不推荐生产环境),或在请求中携带CSRF令牌。

内容的提问来源于stack exchange,提问作者Sarimm Chaudhry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:06:02