- TurboGears 教程
- TurboGears - 主页
- TurboGears - 概述
- TurboGears - 环境
- TurboGears - 第一个程序
- TurboGears - 依赖关系
- TurboGears - 服务模板
- TurboGears - HTTP 方法
- Genshi模板语言
- TurboGears - 包括
- TurboGears - JSON 渲染
- TurboGears - URL 层次结构
- TurboGears - Toscawidgets 表格
- TurboGears - 验证
- TurboGears - 闪讯
- TurboGears - Cookie 和会话
- TurboGears - 缓存
- TurboGears - Sqlalchemy
- TurboGears - 创建模型
- TurboGears - 原油操作
- TurboGears - 数据网格
- TurboGears - 分页
- TurboGears - 管理员访问
- 授权与认证
- TurboGears - 使用 MongoDB
- TurboGears - 脚手架
- TurboGears - 挂钩
- TurboGears - 编写扩展
- TurboGears - 可插拔应用
- TurboGears - 安静的应用程序
- TurboGears - 部署
- TurboGears 有用资源
- TurboGears - 快速指南
- TurboGears - 有用的资源
- TurboGears - 讨论
TurboGears – 验证
一个好的表单小部件库应该具有输入验证功能。例如,应强制用户在必填字段中输入数据,或验证电子邮件字段是否包含有效的电子邮件,而无需诉诸任何其他编程手段(如 JavaScript 函数)进行验证。
ToscaWidgets 表单库的早期版本过去依赖 FormEncode 模块来提供验证支持。ToscaWidgets2 现在在 tw2.core 模块中提供了内置验证支持。然而,仍然可以使用 FormEncode 验证技术。
为了对 ToscaWidgets 表单进行验证,使用了 @validate 装饰器。
@validate(form, error_handler, validators)
“ form ”是要验证的 ToscaWidgets 表单对象。
“错误处理程序”是用于处理表单错误的控制器方法。
“验证器”是包含 FormEncode 验证器的字典对象。
验证器的类型
tw2.core 模块包含一个验证器类,其他验证器都继承自该类。还可以基于它设计自定义验证器。一些重要的验证器如下所述 -
LengthValidator - 检查值是否具有规定的长度。最小和最大限制由 min 和 max 参数定义。长度低于和高于最小值和最大值的自定义消息可以指定为“tooshort”和“toolong”参数。
tw2.core.LengthValidator(min = minval, max = maxval, msgs = { 'tooshort': (‘message for short length’), 'toolong': (‘message for long length)})
RangeValidator - 通常与 RangeField 一起使用。它有助于验证数字字段的值在最小和最大限制内。可以自定义太短和太长参数的消息。
tw2.core.RangeValidator(min = minval, max = maxval, msgs = { 'tooshort': (‘message for short length’), 'toolong': (‘message for long length)})
IntValidator - 该类派生自 RangeValidator。这通常用于验证普通文本字段中的输入是否包含整数数据。可以设置最小和最大限制以及错误消息。此外,非整数输入的错误消息可以指定为“notint”参数。
tw2.core.IntValidator(msgs = {‘notint’:’Must be Integer’})
OneOfValidator - 此验证器强制用户仅从列表中的可用选项中选择一个值。
tw2.core.OneOfValidator(values = [option1, option2,..], msgs = {‘notinlist’:’Not in List’}}
DateValidator - 对于确保用户输入是有效日期非常有用。日期格式(默认为 YMD)和错误消息可自定义。还可以指定最小和最大日期限制。DateTimeValidator 还可用于验证 DateTime 类的对象。
tw2.core.DateValidator(msgs = {format = ’%Y-%m-%d’, 'baddatetime': ('baddate', ('Must follow date format $format_str'))}
EmailValidator - 根据有效的电子邮件地址验证用户输入。该类继承自更通用的 RegexValidator。
tw2.core.EmailValidator(msgs = {'badregex': ('bademail', ('Must be a valid email address')) }
UrlValidator - 该类也是从 RegexValidator 继承的。它验证用户输入的有效 URL。
tw2.core.UrlValidator(msgs = {'badregex': ('badurl', ('Must be a valid URL’)) }
MatchValidator - 确认一个字段的值是否与另一字段匹配。当用户需要选择并确认密码字段时,这特别有用。MatchValidator 的典型用法如下所示 -
import tw2.core as twc import tw2.forms as twf class AdmissionForm(twf.Form): class child(twf.TableLayout): validator = twc.MatchValidator('pw', 'pwconfirm') pw = twf.PasswordField() pwconfirm = twf.PasswordField()
还可以构建一个复合验证器,如果任何一项检查通过,则希望验证成功。在其他情况下,您可能希望仅当输入通过所有检查时验证才能成功。为此,tw2.core 提供了 Any 和 All 验证器,它们是可扩展的CompoundValidator 的子类。