Skip to main content
 首页 » 编程设计

python之Django Rest Framework之如何路由到函数 View

2024年09月07日37qq78292959

我正在使用 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 中一样为其声明一个显式端点。