may*_*k93 5 python django django-views django-rest-framework
我正在使用Django与Django Rest Framework.
Django==2.0.2
djangorestframework==3.7.7
Run Code Online (Sandbox Code Playgroud)
我正在尝试路由到function view.
我当前的设置如下所示:
- project
- project
- urls
- app
- urls
- views
Run Code Online (Sandbox Code Playgroud)
在 中project/urls,我引用app's这样的网址:
url(r'^app_api/', include('app_api.urls', namespace='app_api'))
在 中app/urls,我路由到这样的视图:
router.register(r'', views.app_api, base_name="app_api")
url(r'', include(router.urls)),
Run Code Online (Sandbox Code Playgroud)
在app/views我定义了一个名为 的函数app_api并用 装饰它api_view。
@api_view(['GET'])
def app_api(request):
Run Code Online (Sandbox Code Playgroud)
例如,如果我运行服务器curl http://localhost:8080/app_api/,我会收到状态 200 和空 JSON 的响应。
"GET /app_api/ HTTP/1.1" 200 2
{}
我不明白为什么会发生这种情况。如果我使用基于类的视图集,它可以工作,但不能与函数视图一起使用。
使用时路由到函数视图的正确方法是什么Django Rest Framework?
谢谢!
我不明白你为什么在这里使用路由器。这些用于视图集:路由器生成视图集的所有 URL 端点。你有一个单一的观点;无论它是类还是函数,都没有区别,您需要为它声明一个显式端点,就像在普通 Django 中一样。