【问题标题】:How to fix "error path not found" in django rest framework如何在 django rest 框架中修复“找不到错误路径”
【发布时间】:2019-07-04 01:10:06
【问题描述】:

我正在尝试使用 Django rest 框架构建我的博客网站的 API,但我的 URL 不匹配。

我是第一次尝试 Django Rest 框架,所以我不太能解决这个问题。但我认为我在 url_patterns 中搞砸了。

这是我的主目录(包含 settings.py 的目录)中的 URL 代码。 `

from django.conf.urls import url,include
from django.contrib import admin
from django.urls import path, include
from blog import views

from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'apipost',views.PostViewSet)

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'',include('blog.urls')),
    path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
]

`

我正在尝试 url http://127.0.0.1:8000/apipost 并希望以 json 格式获得价值。

【问题讨论】:

  • 在网址后使用/
  • @ShafikurRahman 我试过这个http://127.0.0.1:8000/apipost/,但仍然出现这个错误The current path, apipost/, didn't match any of these.

标签: django django-rest-framework


【解决方案1】:

您需要将router.urls 添加到您的urlpatterns

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'',include('blog.urls')),
    path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
]

urlpatterns += router.urls

【讨论】:

  • 谢谢,它显示了登录页面,但根据官方教程,它应该可以在没有路由器的情况下工作。Django Rest Framework Tutorial。但它显示没有找到页面。
【解决方案2】:

Django REST Framework 不会神奇地在 urlpatterns 中注册你的路由器,你必须自己做。如果要将它们添加到 urlpatterns 的根目录,可以使用 urlpatterns += router.urls,如果要为它们设置子路径,可以使用 url(r'^api/', include((router.urls, 'app_name'))),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 2018-09-30
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多