我正在尝试使用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')),
]
`
我正在尝试使用网址http://127.0.0.1:8000/apipost,并希望以json格式获取价值。
答案 0 :(得分:2)
您需要将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
答案 1 :(得分:0)
Django REST Framework不会在urlpatterns中神奇地注册您的路由器,您必须自己完成。如果要将urlpatterns += router.urls
添加到urlpatterns的根目录,则可以使用url(r'^api/', include((router.urls, 'app_name'))),
,如果要为其设置子路径,则可以使用AucOn
。