Python数据验证库(一) validators

Python07

Python数据验证库(一) validators,第1张

很多时候我们的程序会接收来自外部的数据,但是我们不能确保接收的数据是我们期待的数据,这时可能需要对数据进行一些验证。比如,在做接口测试时,我们发送http请求,会受到服务器的应答信息,这时需要对接收的数据进行检查,判断是否符合预期。

这里介绍一个简单的数据验证库 validators ,后续还会介绍其他的数据验证库。

python有很多数据验证工具,但是其他的数据验证工具都需要自己定义模式。validators是一个简单的数据验证库,当验证一个简单的值时,不需要定义一个表单或模式。

目前 validators 支持python版本2.7, 3.3, 3.4, 3.5 和PyPy

在validators中每一个validator是一个简单的函数,函数参数为要验证的值,一些函数可能有额外的关键字参数。对于每一个函数,如果验证成功,则返回 True ;若验证失败,则返回一个 ValidationFailure 对象。

验证一个数字 value 是否在最小值 min 和最大值 max 之间, value 不仅仅可以是整数,也可以是其它数据类型,例如floats, decimals 和 dates.

Parameters:

• min – The minimum required value of the number. If not provided, minimum value will not be checked.

• max – The maximum value of the number. If not provided, maximum value will not be checked.

验证 value 是否是一个有效域。如果 value 是一个有效域名,函数返回 True , 否则返回 ValidationFailure .

也支持国际化域名(IDN domain),例如:

验证是否是合法的邮件地址,如果是,函数返回 True , 否则返回 ValidationFailure .

验证是否是合法的国际银行账户号码,如果是,函数返回 True , 否则返回 ValidationFailure .

验证是否是合法的ipv4地址,如果是,函数返回 True , 否则返回 ValidationFailure .

验证是否是合法的ipv6地址,如果是,函数返回 True , 否则返回 ValidationFailure .

验证给定的字符串长度是否在指定范围内。

验证是否是合法的mac地址,如果是,函数返回 True , 否则返回 ValidationFailure .

验证是否是合法的slug,如果是,函数返回 True , 否则返回 ValidationFailure .

验证是否是合法的url,如果是,函数返回 True , 否则返回 ValidationFailure .

Parameters:

• value – 要验证的url

• public – (default=False) Set True to only allow a public IP address

验证Finnish Business ID.

验证Finnish Social Security Number.

class validators.utils.ValidationFailure(func, args)

validators.utils.validator(func, *args, **kwargs)

例:

控制台输出结果:

下一篇:Python数据验证库(二)validator

http://www.jianshu.com/p/eee56214af9c

首先python中请求参数是一个Dict

urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个非常简单的接口

import urllib,urllib2

2

GET方法:

对请求参数dict进行urlencode,然后直接拼到请求的url中,获得带参数的url

req_url = url+'?'+urllib.urlencode( data )

resp = urllib2.urlopen( req_url )

3

POST方法:

需要使用urllib2.Request对urlencode后的参数和请求url连接起来

req_url = urllib2.Request(url, urllib.urlencode( data ))

resp = urllib2.urlopen( req_url )

4

我们使用debug来看下request中信息

get请求时,在query_params中可以看到请求的参数

5

post请求时,在_data,_full_data,data 中都可以看到请求的参数

6

GET:

request.query_params

request.query_params.get('industry_id')

request.REQUEST.get('industry_id')

POST:

request._datarequest._full_datarequest.datarequest.data['industry_id']request.data.get('industry_id')request._data['industry_id']request._data.get('industry_id')request._full_data['industry_id']request._full_data.get('industry_id')

是。python验证服务端采用免费的网络记事本,客户端爬取相应的字符串实现验证的目的,是为平衡面板数据。数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。