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

Django REST Framework路由404求助:/api/正常/api/rota无法访问

Django REST Framework路由404问题解决办法

问题根源

你配置的路由path('rota/', views.getRoutes)要求访问路径必须带末尾斜杠,但你访问的是127.0.0.1:8000/api/rota(不带斜杠),导致路由匹配失败,触发404错误。

解决方法

方法1:使用正确的访问路径

直接访问带末尾斜杠的地址:127.0.0.1:8000/api/rota/,即可正常匹配到getRoutes视图。

方法2:修改路由支持不带斜杠访问

如果希望同时兼容带斜杠和不带斜杠的路径,有两种实现方式:

  1. 去掉路由规则中的末尾斜杠:
# api目录下urls.py
urlpatterns = [
    path('',  views.getMessage),
    path('rota', views.getRoutes),  # 移除末尾的/
]

这种设置下/api/rota可正常访问,但/api/rota/会触发404。

  1. 使用正则路由匹配两种情况:
# api目录下urls.py
from django.urls import path, re_path
from . import views

urlpatterns = [
    path('',  views.getMessage),
    re_path(r'^rota/?$', views.getRoutes),  # ?表示末尾斜杠为可选
]

该配置下,/api/rota和/api/rota/都能正常匹配视图。

方法3:检查全局重定向设置

确保项目settings.py中的APPEND_SLASH配置为True(默认值即为True):

APPEND_SLASH = True

开启后,当访问不带斜杠的/api/rota时,Django会自动重定向到带斜杠的/api/rota/,避免404错误。

另外,你的getRoutes视图中路由列表的字符串缺少逗号,会导致两个字符串拼接成一个,建议修正:

routes=[
    'GET api/',
    'GET api/rota'
]

内容的提问来源于stack exchange,提问作者Arlindo Junior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:18:25