在Django Rest Framework中创建路由的@action和@api_view有什么区别

问题描述 投票:0回答:1

两个装饰器似乎只是为您创建一条路线。但实际差异是什么(如果有的话)?文档中并不清楚。

我什至以同样的方式创建了两条路线,没有区别

django django-rest-framework django-views django-rest-viewsets
1个回答
1
投票

@action
用于在现有 ViewSet 中创建方法 可路由:

如果您有应可路由的临时方法,您可以标记它们 与

@action
装饰器一样。

@api_view
将基于普通函数的视图函数“转换”为 DRF 视图。 文档解释得最好:

REST 框架还允许您使用基于常规函数的 意见。它提供了一组简单的装饰器来包装您的函数 基于视图以确保它们收到 Request 的实例(而不是 通常的 Django HttpRequest)并允许它们返回响应 (而不是 Django HttpResponse),并允许您配置如何 请求已处理。 该功能的核心是

api_view
装饰器,它需要 您的视图应响应的 HTTP 方法列表。

© www.soinside.com 2019 - 2024. All rights reserved.