Django访问根路径出现404错误,请求技术协助
问题解决方法
你的404错误和代码里的几处错误直接相关,以下是具体修复步骤:
1. 修正urls.py的路由配置
存在的错误:
router.register('/posts', NotesViewset)中路径开头多了斜杠,会导致Django路由匹配异常path(' ', include(router.urls))使用空格作为路径,而非空路径,使得根路径http://127.0.0.1:8000/无法匹配到任何规则
修改后的urls.py:
from django.contrib import admin from django.urls import path, include from Notes.views import NotesViewset from rest_framework.routers import DefaultRouter router = DefaultRouter() # 移除路径开头的斜杠 router.register('posts', NotesViewset) urlpatterns = [ path('admin/', admin.site.urls), # 改为空字符串,匹配根路径 path('', include(router.urls)) ]
2. 修正views.py的视图类属性
存在的错误:
NotesViewset中使用了serializer属性,而DRF的ModelViewSet要求的正确属性名是serializer_class,拼写错误会导致视图无法完成数据序列化
修改后的views.py:
from django.shortcuts import render from .models import Note from rest_framework import viewsets from .serializers import NoteSerializer class NotesViewset(viewsets.ModelViewSet): # 修正属性名为serializer_class serializer_class = NoteSerializer queryset = Note.objects.all()
完成以上修改后,重启Django服务:
- 访问
http://127.0.0.1:8000/posts/即可查看笔记接口 - 访问根路径
http://127.0.0.1:8000/会显示DRF自动生成的API根页面
内容的提问来源于stack exchange,提问作者nah1r
相关产品推荐
相关产品推荐

