【问题标题】:Create custom Django API response template创建自定义 Django API 响应模板
【发布时间】:2019-04-08 14:03:43
【问题描述】:

我正在尝试使用 django rest 框架构建一个响应结构并具有一些标准模板主体:

响应正文应具有以下参数:

  • status_code :它应该接受状态码并将其作为响应提供 目的
    • 无效条目:这些是用户在表单中创建的无效条目,请求未对其进行处理。
    • 消息:应提供带有详细信息的成功/失败消息
    • 数据:前端的 Json 响应数据
    • 任何空白的内容都不应与响应正文一起使用。

【问题讨论】:

  • 请贴出你目前尝试过的代码。
  • 请求你把你的代码和你到底面临什么问题?

标签: django python-3.x django-rest-framework django-views


【解决方案1】:

您可能以错误的方式处理问题。您应该使用状态码来传递有关成功/失败的信息,然后在数据中传递错误。

如果您使用的是 django rest 框架,则可以通过序列化程序完成验证: https://www.django-rest-framework.org/api-guide/serializers/

然后你的视图看起来像

 def post(self, request):
    serializer = YourSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(**serializer.validated_data) 
        return Response(status=status.HTTP_201_CREATED)
    else:
        return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

然后数据中的错误将如下所示:

{
"email": [
    "Enter a valid email address."
],
"first_name": [
    "This field is required."
],
"last_name": [
    "This field is required."
],
"password": [
    "This field is required."
]

}

【讨论】:

  • 我正在研究 IOT,因此我的 API 没有数据库交互,因此我想要一个没有序列化数据的响应模板
猜你喜欢
  • 2017-09-11
  • 2013-10-29
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2014-07-04
  • 1970-01-01
  • 2018-09-04
相关资源
最近更新 更多