pip install -r requirements.txt
python setup.py install
>>> from porm.model import Model
>>> from porm.validators import StringValidator, RegexValidator, EmailValidator, NumberValidator, LengthValidator
>>> from porm.fields import StringField
>>> class User(Model):
>>> name = StringField(index=True,
>>> validators= [
>>> StringValidator(),
>>> LengthValidator(min_length=0, max_length=20)
>>> RegexValidator('^P')
>>> ])
>>> surname = StringField(validators=[
>>> StringValidator(),
>>> LengthValidator(min_length=0, max_length=20)
>>> ])
>>> age = NumberField(validators=[
>>> RangeValidator(min=0, max=120)
>>> ])
>>> email = StringField(validators=[
>>> NumberValidator(),
>>> EmailValidator()
>>> ])
>>> ip = StringField(validators=[
>>> IPAddressValidator(ipv4=True)
>>> ])
>>> user = User()
>>> user.name = 'Peter'
>>> user.surname = 'Pan'
>>> user.age = 15
>>> user.email = 'peter@pan.com'
>>> user.ip = '127.0.0.1'
>>> print user
{'ip' = '127.0.0.1', 'email': 'peter@pan.com', 'age': 15, 'surname': 'Pan', 'name': 'Peter'}
>>> user.save()
True
>>> user.free()
True
>>> user.exist()
False
>>> user = User()
>>> user.name = 'Peter'
>>> user.email = 'peter@pan.com
>>> user.save()
True
>>> found_user = User.find('Peter')
>>> found_user.email.get()
'peter@pan.com'
A default value can be set if no value is supplied
>>> class User(Model):
>>> name = StringField(index=True)
>>> surname = StringField(default='Pan')
>>> user = User()
>>> user.name = 'Peter'
>>> user.surname.get()
'Pan'
- StringValidator (str)
- NumberValidator (int, float)
- EmailValidator (str)
- RegexValidator (str)
- EqualToValidator (str, int, float)
- NumberRangeValidator (int, float)
- LenghValidator (str)
- IPAddressValidator (str) (Support for ipv4 and ipv6)
>>> class User(Model):
>>> name = StringField(index=True,
>>> validators= [
>>> LengthValidator(min_length=0, max_length=20)
>>> ])
>>> user = User()
>>> user.name = 'string_with_more_than_20_characters'
porm.validators.ValidatorException: LengthValidator could not validate 'string_with_more_than_20_characters'