我正在使用 Django 和 Django Rest Framework。
Django==2.0.2
djangorestframework==3.7.7
我正在尝试路由到一个函数 View 。
我当前的设置如下所示:
- project
- project
- urls
- app
- urls
- views
在 project/urls 中,我引用了 app 的 url,如下所示:
url(r'^app_api/', include('app_api.urls', namespace='app_api'))
在 app/urls 中,我像这样路由到 View :
router.register(r'', views.app_api, base_name="app_api")
url(r'', include(router.urls)),
在 app/views 中,我定义了一个名为 app_api 的函数,并用 api_view 装饰了它。
@api_view(['GET'])
def app_api(request):
例如,如果我运行服务器并 curl http://localhost:8080/app_api/,我会收到状态为 200 和空 JSON 的响应。
"GET/app_api/HTTP/1.1"200 2 {}
我不明白为什么会这样。如果我使用基于类的 View 集,它可以工作,但不能用于函数 View 。
使用 Django Rest Framework 时,路由到函数 View 的正确方法是什么?
谢谢!
请您参考如下方法:
我不明白你为什么要在这里使用路由器。这些用于 View 集:路由器为 View 集生成所有 URL 端点。您只有一个 View ;它是类还是函数都没有区别,您需要像在普通 Django 中一样为其声明一个显式端点。
