Django 表单验证与 DRF 序列化程序验证

Posted

技术标签:

【中文标题】Django 表单验证与 DRF 序列化程序验证【英文标题】:Django form validation vs DRF serializer validation 【发布时间】:2020-08-14 18:57:53 【问题描述】:

我是在 django 中创建 API 的新手。 我检查了 DRF 序列化程序,发现它们在操作数据库中的模型时很有用。我的 API 不使用基于表单的模型。

所以我的问题是:我可以从使用 DRF 验证器然后在我的视图中使用 django 表单验证器获得更多?也许内容类型更方便(application/x-www-form-urlencoded vs application/json)?

【问题讨论】:

【参考方案1】:

DRF 的序列化程序很好地集成在框架中。无论它们是否基于模型,您都可以免费使用漂亮的可浏览 UI,并且可以生成 OpenAPI 模式。可能还有其他我没有想到的事情。

序列化程序可以做哪些表单不能做的事情:

嵌套数据 - 虽然您可以使用表单集获得一些结果。 超链接的关系字段 空白字段和​​空白字段之间的区别 - html 表单无法做到这一点 与基于通用类的视图或视图集的开箱即用集成

请注意,即使您不使用序列化程序,您仍然可以从 DRF 中受益。 DRF 部分是松散耦合的。

【讨论】:

以上是关于Django 表单验证与 DRF 序列化程序验证的主要内容,如果未能解决你的问题,请参考以下文章

Django DRF序列化器或视图中的多表过滤

是否可以在 django rest 框架序列化程序中使用重用 django 表单进行验证?

Django:基于 DRF 令牌的身份验证 VS JSON Web 令牌

django 学习之DRF

在 Django/DRF 中使用 JWT 身份验证并将 JWT 存储在 HttpOnly Cookie 中

Django Rest Framework 中是不是曾经使用过 Django 表单?