python语言的类laravel数据验证库

laravalidation的Python项目详细描述


放大

发布特拉维斯CI构建状态覆盖率报告

原始分叉回购:https://github.com/walid-mashal/laravel validation

laravalidation是一个python模块,包含使用python语言实现laravel风格的数据验证的逻辑。此代码可与HTML表单一起用于验证其输入字段,也可与任何其他类型的数据一起使用,只要这些数据是以Python字典的形式存在。

例如,我们可以将一些数据以python字典的形式保存如下:

data = { 
    'name':'2222222',   
    'phone':'2',  
    'birthday':'1991/03/04',    
    'email':'info@example.com',    
    'host':'172.30.30.231',  
    'website':'https://www.example.com', 
    'nationality':'afghan',
    'active':'1',  
}

需要验证。

因此,我们可以按以下方式编写规则来验证数据

rules = { 
    'name':'required|size:20',   
    'phone':'phone', 
    'birthday':'date|date_format:%Y/%m/%d', 
    'email':'required|email',
    'host':'ip', 
    'website':'website', 
    'nationality':'in:afghan,pakistani,irani',
    'active':'boolean'
}  

说明:

名称字段是必需字段,最多允许20个字符。

电话字段是电话号码字段,应为此字段输入有效的电话号码。

生日字段是日期字段,输入的值应为有效日期,日期格式允许您指定该字段应填充的日期格式。

电子邮件也是必需的,应在该字段中输入有效的电子邮件

主机必须是有效的IP地址,例如196.3.3.8

网站必须是有效的网站地址,例如http://www.google.com

国籍可以是提供的三个字符串之一:阿富汗、巴基斯坦、伊朗

活动的必须是以下值之一:1,0,"1","0","false","true",false,true

现在我们可以编写以下代码来验证数据

from validation import Validation

validator = Validation()
errors = validator.validate(data,rules)

现在错误包含验证结果的错误消息列表。

validate()还接受一个可选的自定义消息参数,该参数将设置用于验证的用户消息,或者,您可以使用cutom_error_messages.json文件来设置自己选择的消息,而不是传递自定义消息参数。

我们可以调用is valid()方法来验证数据,并返回truefalse

from validation import Validation

validator = Validation()
isvalid = validator.is_valid(data,rules)

errors = validator.errors

validate()是有效的()之后,将在包含验证错误消息列表的对象上设置一个名为errors的实例变量。

验证规则

下面是可用的验证规则列表

之后

正在验证的字段必须是给定日期之后的值。

α

正在验证的字段必须完全是字母字符。

阿尔法数

正在验证的字段必须是entirely字母数字字符。

之前:日期

正在验证的字段必须是给定日期之前的值。

介于:最小值、最大值之间

正在验证的字段的大小必须介于给定的minmax之间。字符串和数字的计算方式与大小规则相同。

布尔型

验证中的字段必须能够转换为布尔型。接受的输入值为真、假、1、0、"1"和"0"。

已确认

正在验证的字段必须有一个匹配的foo_confirmation字段。例如,如果正在验证的字段是password,则输入中必须存在匹配的password_confirmation字段。

日期

正在验证的字段必须是有效日期,如果未应用日期格式规则,则格式的默认值为%m/%d/%y

日期格式:格式

正在验证的字段必须与格式中定义的格式匹配,默认格式为%m/%d/%y。此规则应按日期规则执行。

不同:字段

给定的字段必须与正在验证的字段不同。

数字:值

正在验证的字段必须是数字,并且必须具有精确的长度

电子邮件

正在验证的字段必须格式化为电子邮件地址。

整数

正在验证的字段必须具有整数值。

IP

正在验证的字段必须格式化为IP地址。

最大值

正在验证的字段必须小于或等于最大值。字符串、数字和文件的计算方式与大小规则相同。

最小值:值

正在验证的字段必须具有最小值。字符串、数字和文件的计算方式与大小规则相同。

不在:foo,bar,…

正在验证的字段不能包含在给定的值列表中。

存在

正在验证的字段必须存在于输入数据中,但可以为空。

正则表达式:模式

正在验证的字段必须与给定的正则表达式匹配。

必需的

正在验证的字段必须存在于输入数据中。

相同:字段

给定字段必须与正在验证的字段匹配。

大小:值

正在验证的字段必须具有与给定值匹配的大小。对于字符串数据,值对应于字符数。对于数字数据,对应于给定的整数值。

网站

正在验证的字段必须具有有效的网站URL作为值。例如:https://www.example.com rel="nofollow">https://www.example.com或www.example.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java线程执行器服务   aspose如何通过java获得单词bookmark之前的所有文本内容?   一对一映射的java Hibernate合并问题   java SOAP XSD根元素问题   java如何保护我的Spring启动API   java使用GeoJson向google地图添加标记   java安卓:在SQLite中没有这样的列   java STS 2.8.0 StartExplorer/Legacy插件安装问题   java如何以编程方式获取AppBar高度?   在Java中将BigDecimal添加到BigDecimal   java不支持ntdll。dll是windows xp和windows vista的标准配置吗?   内容类型为application/xwwwformurlencoded的java Http Put请求在Spring中不起作用   java在数组中计算工资并返回答案   java数字/货币格式   elasticsearch java api中的弹性搜索查询