如何在客户端和服务器端使用验证规则?
Posted
技术标签:
【中文标题】如何在客户端和服务器端使用验证规则?【英文标题】:How to use the validation rules on both client-side and server-side? 【发布时间】:2011-02-06 01:40:51 【问题描述】:我正在使用 jQuery 验证系统进行客户端验证。后端使用 django。 jQuery 使用 JSON 格式的一组有趣的规则。
是否存在在 django 端使用相同规则的东西,或者我需要自己编写代码?
【问题讨论】:
我认为世界需要某种可以在客户端和服务器端运行的验证标记。为每个环境编写的引擎将处理验证。我想有点像 xml 架构。 【参考方案1】:不,不存在这样的东西。
是的,您需要自己编写代码。
但是,我想您可以创建能够基于 modelFields 提供通用验证 js 例程的小部件。例如“这应该是不超过 max_length 的字符”。然而,他们无法轻松生成客户端代码来验证任何用 python 编写的自定义验证,甚至无法生成“这必须是现有用户的用户名”之类的东西。但是,如果您不厌其烦地构建基于模型字段进行基本验证的小部件,请将它们贡献给开源:-D
【讨论】:
它已经是一个开源项目所以无论如何它都会:)当然这可能只对需要复制的操作有效,例如日期验证或密码确认验证等...如果它涉及数据库,它将涉及服务器端和一些用于客户端验证的 ajax。【参考方案2】:本文描述了某种程度的集成:http://streamhacker.com/2010/03/08/jquery-validation-django-forms/
看起来它实际上并没有根据服务器端元数据生成客户端元数据,但至少将所有规则放在一个地方。可能是根据现有 Django 规则生成这些规则的良好起点。
【讨论】:
【参考方案3】:我自己没用过,但是有django-ajax-forms这个项目。
【讨论】:
以上是关于如何在客户端和服务器端使用验证规则?的主要内容,如果未能解决你的问题,请参考以下文章
如何在客户端和服务器之间共享 Javascript 业务规则?
如何在服务器端使用passport js本地用户身份验证后在客户端使用cookie显示用户信息?