Django 是否需要客户端验证?
Is client side validation nessesary in Django?
我正在编写 Django 应用程序,想知道是否需要任何客户端验证。 Django 在后端通过 python 中的表单处理所有验证。如果验证有误,用户将返回到屏幕,但他们的所有信息仍然存在。
我看不出有什么理由需要在 Django 中实施客户端验证?这是真的?我能想到的唯一原因是它会减少对服务器的一些点击,但这似乎可以忽略不计。
客户端验证可以改善用户体验(减少页面重新加载)。它可能会减少服务器的点击次数(但有时这个数字会增加 :)。但没必要。
无论如何,服务器端验证是必须的。您不能相信来自用户输入的数据。
如果您有面向 public 互联网客户端的 Web 应用程序,验证几乎是用户的期望。如果访问量较低并且人们有动力使用您的网站,您可以忽略此选项。
对于公司 Intranet 站点,额外的开发成本可能会影响客户端验证。但是,如果您使用可用的客户端框架(例如 jquery 或 django-parsley),客户端验证的额外成本实际上相当小,并且可能值得在 intraweb 应用程序中付出努力。
已添加
是的,正如其他人已经指出的那样,仅客户端验证非常糟糕,因为它与没有验证一样——您可以强制浏览器将您想要的任何内容发送回服务器。
您还可以在客户端做很多服务器端做不到的好事。有时这些与客户端验证密切相关。
例如,将评论限制在 500 个字符以内。使用客户端代码,您可以在屏幕上显示剩余字符数——稍加计划就可以将其与验证码集成。
这在很大程度上是一个见仁见智的问题,但我不得不说不——您不需要实施客户端验证。特别是当您可以通过简单的 Ajax POST.
从 Django 表单 returned as JSON 中获取所有错误时
Django 表单在验证输入方面已经做得非常出色,那么为什么还要在两个地方添加更多的代码来做同样的事情呢?无论如何,您绝对必须进行服务器端验证,那么为什么不在一个地方全部完成呢?
此外,如果您没有在服务器上实现与客户端相同的验证,或者更糟 - 只进行客户端验证,那么有人总是可以在浏览器中关闭 JavaScript 并可能绕过如果您不小心,您的验证或允许垃圾数据进入您的数据库。
我正在编写 Django 应用程序,想知道是否需要任何客户端验证。 Django 在后端通过 python 中的表单处理所有验证。如果验证有误,用户将返回到屏幕,但他们的所有信息仍然存在。
我看不出有什么理由需要在 Django 中实施客户端验证?这是真的?我能想到的唯一原因是它会减少对服务器的一些点击,但这似乎可以忽略不计。
客户端验证可以改善用户体验(减少页面重新加载)。它可能会减少服务器的点击次数(但有时这个数字会增加 :)。但没必要。
无论如何,服务器端验证是必须的。您不能相信来自用户输入的数据。
如果您有面向 public 互联网客户端的 Web 应用程序,验证几乎是用户的期望。如果访问量较低并且人们有动力使用您的网站,您可以忽略此选项。
对于公司 Intranet 站点,额外的开发成本可能会影响客户端验证。但是,如果您使用可用的客户端框架(例如 jquery 或 django-parsley),客户端验证的额外成本实际上相当小,并且可能值得在 intraweb 应用程序中付出努力。
已添加
是的,正如其他人已经指出的那样,仅客户端验证非常糟糕,因为它与没有验证一样——您可以强制浏览器将您想要的任何内容发送回服务器。
您还可以在客户端做很多服务器端做不到的好事。有时这些与客户端验证密切相关。
例如,将评论限制在 500 个字符以内。使用客户端代码,您可以在屏幕上显示剩余字符数——稍加计划就可以将其与验证码集成。
这在很大程度上是一个见仁见智的问题,但我不得不说不——您不需要实施客户端验证。特别是当您可以通过简单的 Ajax POST.
从 Django 表单 returned as JSON 中获取所有错误时Django 表单在验证输入方面已经做得非常出色,那么为什么还要在两个地方添加更多的代码来做同样的事情呢?无论如何,您绝对必须进行服务器端验证,那么为什么不在一个地方全部完成呢?
此外,如果您没有在服务器上实现与客户端相同的验证,或者更糟 - 只进行客户端验证,那么有人总是可以在浏览器中关闭 JavaScript 并可能绕过如果您不小心,您的验证或允许垃圾数据进入您的数据库。