DRF格式选项是什么意思

时间:2019-02-21 14:16:15

标签: python django django-rest-framework

我是第一次使用DRF,我想知道他们网站上以下代码段中的“格式”是什么:

class CommentList(APIView):
    def get(self, request, format=None):
        # do stuff...

    def post(self, request, format=None):
        # do stuff...

我阅读了文档,但是我不确定它如何工作。有人可以给我一个例子吗?谢谢

2 个答案:

答案 0 :(得分:1)

例如

假设它们是一个带有以下代码的 APIView

class HelloAPIView(APIView):
    def get(self, request, format):
        # do stuff...

    def post(self, request, format):
        # do stuff...

HelloAPIView 的端点 url 是:


http://example.com/api/users

现在,如果您希望响应数据采用 json 格式,那么您将访问的 URL 会像


http://example.com/api/users.json

因此,当您像上面一样访问 url 时,值“json”将作为第三个参数传递(第一个是 self,第二个是 request > 和第三个是 format) 到 get()post()HelloAPIView 方法。

所以基本上 format 参数用于定义您想要响应的格式。

更多详情请参考

  1. https://www.django-rest-framework.org/api-guide/format-suffixes/
  2. https://www.django-rest-framework.org/tutorial/2-requests-and-responses/#adding-optional-format-suffixes-to-our-urls

答案 1 :(得分:0)

添加格式以处理DRF中的多种内容类型

使用格式后缀可为我们提供明确引用给定格式的URL,这意味着我们的API将能够处理

之类的URL。

http://localhost/api/items/4.json

向API的URLconf中的每个单独条目添加格式后缀模式很容易出错,并且不干燥,因此REST框架提供了将这些模式添加到URLConf的快捷方式。

有关更多详细信息,请参见this