Background
Qiymətləndirmə və məlumatların dönüşüm.
məlumat sanitizing (Düzgün yoxlanılması və faydalı forma dəyişdirir) problemi proqramlaşdırma geniş yayılmış:
- Nasıl istifadəçi girişi doğru yoxlamaq edirsiniz?
- Nasıl tarix və nömrə bir elektron tablo məlumat Munge edirsiniz?
- Nasıl proqram obyektə xam bazası sahələri çevirmək olar?
Ian Bicking onun Formencode kitabxana [formencode] təcəssüm bu problem üçün bir həssas idiom ilə gəldi: qiymətləndirmə və dönüşüm eyni şey var, və validators bir zəncirvari vasitəsilə xam data keçərək ele ola bilər. Hər validator çek və / və ya data çevirir və növbəti üçün keçir.
Bu ruhda, konval təmin edən bir paket:
- Qiymətləndirmə obyektlərin zəngin kitabxana
- Asanlıqla xüsusi validators istehsalı üçün baza dərsləri
- Asanlıqla müxtəlif yollarla da validators istifadə üçün funksiyaları
Status
konval, kəşfiyyat dövlət başqa bir paketinə dəstək və istifadə dönüşüm generalising çıxmış ola bilər görmek üçün istehsal edilmiş. Belə ki. hələ də erkən azad edir və API dəyişə bilər. Şərh dəvət olunur.
Quraşdırma
konval yüklemek üçün sadə yolu easy_install [setuptools] və ya ekvivalent proqramı vasitəsilə:
easy_install konval
Alternativ tarball nazil unpacked və setup.py run bilər:
tar zxvf konval.tgz
& Nbsp; cd konval
& Nbsp; python bərpa set.py
konval heç bir ilkin və Python yalnız hər hansı bir versiyası ilə işləmək lazımdır ki, bir modul deyil.
istifadə konval
Tam API mənbə paylanması daxil edilir.
nümunələri
Ən çox, konval yoxlamaq və ya təmiz dəyərlər üçün istifadə olunacaq. Uğursuzluqlar istisnalar atılır nəticələnə:
# Bir faktiki tam istifadəçi daxil çevirmək
>>> Konval idxal *
>>> Sanitize (1.0, ToInt ())
1
>>> Sanitize (bir, ToInt ())
Traceback (ən son zəng, son)
...
ValueError: tam üçün "1.0" çevirmək edə bilməz
Bir Validator və ya siyahısı sanitize üçün qəbul edilə bilər. Hər hansı uğursuzluq hər hansı bir istisna ilə nəticələnəcək:
# Siyahısı artıq 3 üzvü var yoxlamaq
>>> Sanitize (['bir', 'b', 'c'] [ToLength (), IsEqualOrLess (3)])
3
# Şifrəni yoxlamaq kifayət qədər uzun
>>> Sanitize (mypass, [ToLength (), IsEqualOrMore (8)])
Traceback (ən son zəng, son)
...
ValueError: 6 8 aşağı
Bir dəyər qəbul qaytarır hər hansı bir callable obyekt bir qiymətləndirici kimi istifadə edilə bilər:
>>> String idxal *
>>> Sanitize ("mənim adı" [strip, kapitallaşdırmaq])
'Mənim title'
Prebuilt validators zəngin kitabxana təchiz olunur:
>>> Sanitize (ABCDE, IsNonblank ())
"ABCDE"
>>> Sanitize (5 IsInRange (1,6))
5
>>> Sanitize (foo, Sinonimlər ({"foo ':' bar", "baz ':' quux"}))
"Bar"
Custom validators asanlıqla təchiz baza sinif subclassed edilə bilər:
sinif IsFoo (BaseValidator):
& Nbsp; def validate_value (özünü, dəyəri):
! & Nbsp; əgər value = "foo:
& Nbsp; self.raise_validation_error (dəyəri)
& Nbsp; doğru qayıtmaq
Bu azad yeni nədir:
- bir neçə validators daha ardıcıl sxemi Renamed. Adlar indi müəyyən edilməlidir.
tələblər
- Python
məhdudiyyətlər
- konval istifadəçi daxil dönüş, məlumatların bir yol çevrilməsi hədəflənir ya saxlanılır Python obyektlərin daxil data. Əlbəttə ki, əks istiqamətdə istifadə, lakin bu əsas istifadə belə deyil bilər. Ki, bir faydalı alternativ ola bilər FormEncode, iki yol (round trip) data dönüşüm ətrafında əsaslanır.
- adı konval seçildi çünki:
- artıq deyilən & quot bir Python kitabxana var; ağlı başında olma & quot;
- ; Valcon & quot ;, & quot; valkon & quot ;, & quot; Conval & quot; və s. idi Google az Xit bir
Bir & quot həyata
Şərhlər tapılmadı