【问题标题】:What error to raise with wrong post request body?错误的发布请求正文会引发什么错误?
【发布时间】:2020-12-21 05:39:42
【问题描述】:

我是 Django 新手,并且有一个接受发布请求的端点。端点期望发布请求正文中有一组特定的键。 如果他们没有提供正确的键,我应该引发什么类型的异常? ValueError?谢谢!

【问题讨论】:

标签: python django


【解决方案1】:

您应该返回HttpResponseBadRequest 响应,并在无效数据中包含有用的消息。这将返回一个 400 响应,用于指示请求数据存在问题

如果您使用 Django 创建休息端点,则值得使用像 https://www.django-rest-framework.org/ 这样的库,因为它可以简化它们的创建并处理围绕验证、序列化和响应的大量工作

【讨论】:

  • 感谢您的回复!我实际上正在使用 django rest 框架!如果我使用它,我应该做不同的反应吗?谢谢!
  • 如果您正确使用序列化程序,那么当您验证传递给它的数据时,序列化程序将引发 ValidationError,其余框架使用 catch 然后为您返回 400 响应
  • @NickSmith 如果您为视图/端点添加代码,可能会更容易提供帮助
  • 等等...我是 DRF 的新手,但这是一个自定义端点,它接收一些数据,对其进行大量预处理并吐出其他内容。我一直在使用api_view 并返回Response()...有没有更好的方法?
  • 基于类的视图比基于函数的视图提供了更多的功能,我建议使用它们,因为它们消除了对大量样板代码的需求并提供了使用 mixins/inheritance 的能力
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 2019-05-29
相关资源
最近更新 更多