Django API端点404问题:try/路径无法访问
问题描述
首次尝试使用Django构建API,为验证功能,计划在try/端点实现GET方法,返回包含"name":"myname"的简单JSON数据。Django应用运行正常,admin页面可正常访问,但访问admin/try端点时返回404错误。所有API相关文件放在独立的api文件夹中,按教程操作应无问题。
相关代码
api/views.py
from rest_framework.response import Response from rest_framework.decorators import api_view @api_view(['GET']) def tryMethod(request): something = {'name':'myname'} return Response(something)
api/urls.py
from django.urls import path from . import views urlpatterns = [ path('try/', views.tryMethod)]
主应用urls.py
from django.urls import path, include from django.contrib import admin from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView from . import views urlpatterns = [ path('admin/', admin.site.urls), path('health/', views.health, name='health'), path('schema/', SpectacularAPIView.as_view(), name='schema'), path('docs/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), path('404', views.handler404, name='404'), path('500', views.handler500, name='500'), path('', include('api.urls')), ]
错误现象
访问admin/try时返回404页面未找到错误。
解决方案
你访问的路径完全错了!根据你的路由配置:
- 主应用将
api.urls挂载在了根路径(path('', include('api.urls'))) api.urls里配置的是try/端点
所以正确的访问路径应该是http://你的域名/try/,而admin/是Django自带后台的专属路径,和你的API端点没有关联,访问admin/try自然会返回404。
如果确实想让API端点放在admin/路径下,需要修改主应用的urls.py,把include('api.urls')的路径改成admin/,示例:
path('admin/', include('api.urls')),
但这种做法不推荐,很容易和Django自带的admin后台路由冲突。更合理的方式是给API单独设置前缀,比如api/:
path('api/', include('api.urls')),
此时正确的访问路径就是http://你的域名/api/try/。
内容的提问来源于stack exchange,提问作者ElTorado
相关产品推荐
相关产品推荐

