Bugün zope3 schema konusuna biraz baktım.Oldukça güçlü bir altyapısı var.Zope,schema da neki demeyin okuyun :)Otomatik validation özellikleri falan geliştiriciye gerçekten çok büyük kolaylıklar sağlıyor. Ki küçük bir deneme yaptım :
Email validation kısmına dikkat etmek gerekir.Nasıl bir esneklik sağlıyor değil mi ama :)
import re
import zope.interface
import zope.schema as sc
class IContact(zope.interface.Interface):
""" Schema about contact information"""
first=sc.TextLine(title=u'FirstName')
last=sc.TextLine(title=u'LastName')
email=sc.TextLine(
title=u'Email Adress',
constraint=re.compile("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+
\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$").match)
class Contact(object):
""" The real class"""
zope.interface.implements(IContact)
def __init__(self,fname,lname,email):
""" The initial information"""
self.first=fname
self.last=lname
self.email=email
if __name__=="__main__":
someone=Contact(u'Zoper',u'Man',u'zoper@gmail.com')
for field in sc.getFields(IContact).values():
bound=field.bind(someone)
#print bound.get(someone)
bound.validate(bound.get(someone))
print "Validated"
Hiç yorum yok:
Yorum Gönder