Pylons 0.9.7 で validate 使用できる検証ルール その2



【整数入力を指定する】
formencode.validators.Int

IntはRangeValidatorを継承していますので、
min:最小値
max:最大値
を指定することが出来ます。

5以上10以下の整数に制限する場合
Int(min=5,max=10)

※入力値とエラーメッセージ
a:「整数を入力してください」(integer)
0:「Please enter a number that is 5 or greater」(tooLow)
11:「Please enter a number that is 10 or smaller」(tooHigh)



【数値入力を指定する】
formencode.validators.Number

1.1以上2.1以下の数値に制限する場合
Number(min=1.1,max=2.1)

※入力値とエラーメッセージ
a:「整数を入力してください」(integer)
1.0:「Please enter a number that is 1.1 or greater」(tooLow)
2.2:「Please enter a number that is 2.1 or smaller」(tooHigh)



【入力文字数を指定する】
formencode.validators.String

5文字以上10文字以下に制限する場合
String(min=5,max=10)

※入力値とエラーメッセージ
(空白):「入力してください」(empty)
aaa:「長さ5文字以上で入力してください」(tooShort)
aaaaaaaaaaa:「長さ10文字以下で入力してください」(tooLong)



【unicode文字列を指定する】
formencode.validators.UnicodeString

unicode文字列であるか検証できるようですが、
Pylonsで使用する機会はあまりないかと。



【メールアドレスの入力を指定する】
formencode.validators.Email

メールアドレス指定、空白不可、ドメインの妥当性検証を行なう場合
Email(not_empty=True,resolve_domain=True)

resolve_domainを使用する場合は、pyDNS が必要です。


※入力値とエラーメッセージ
(空白):「メールアドレスを入力してください」(empty)
a:「メールアドレスには@がひとつ必要です」(noAt)
a@:「メールアドレスのドメインが正しくありません(@より後の部分:)」(badDomain)

後は、badUsername、socketError、domainDoesNotExistというエラーがあります。



【URLの入力を指定する】
formencode.validators.URL

URLの入力のみとする。ただし、http://localhostは許可する。
URL(require_tld=False)

指定できるパラメーターは
check_exists:存在チェックを行なう(Default:False)
add_http:http、httpsを自動的に付加する(Default:True)
require_tld:tldチェックを行なう(Default:False)
(require_tld=Trueにすると、http://localhostは不可となる)


※入力値とエラーメッセージ
aaa:「You must provide a full domain name (like aa.com)」(noTLD)
その他、noScheme・badURL・httpError・socketError・notFound・status



【XRI(eXtensible Resource Identifier)の入力を指定する】
formencode.validators.XRI

XRI(eXtensible Resource Identifier)はOpenIDで使用されている
規格です。
URLと同様の指定が可能です。



【OpenIdの入力を指定する】
formencode.validators.OpenId

OpenIdのチェックが行なえるようです。



【その他のvalidator】
IPAddress
CIDR
MACAddress
CreditCardValidator
CreditCardExpires
CreditCardSecurityCode


使いこなせば、検証ロジックが大幅に削減できると思います。



もどる