pardus etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
pardus etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Eylül 2007 Salı

Zope Schemas?

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"