DEV Community

Free Python Code
Free Python Code

Posted on

How to Validate data using onelinevalidation library

Hi 🙂🖐

In this post, I will share with you how to Validate data using onelinevalidation library in Python

onelinevalidation It is a simple library in the Python language that performs validation in an easy and simple way.

Install onelinevalidation

python pip install onelinevalidation
Enter fullscreen mode Exit fullscreen mode

or

pip install onelinevalidation
Enter fullscreen mode Exit fullscreen mode

validate form data


from onelinevalidation import validate_form

userData = {"username": "amr123", "email": "amr.@aol.com", "password": "123Ab#"}
print(validate_form(userData))

Enter fullscreen mode Exit fullscreen mode

Result

{'error': {'username': 'Invalid username should be like this abc_123 or abc. abc', 'email': 'This email address is not valid', 'password': 'The password length must be at least 8 uppercase, lowercase letters, numbers, symbols like @aA123#*'}
}

Enter fullscreen mode Exit fullscreen mode

Create custom validation using regex

from onelinevalidation import custom_validate


pattrens = [
    "[a-zA-Z]+[_.]+[a-zA-Z0-9]+", 
    "[a-zA-Z0-9_-]+[@](aol|gmail|yahoo|outlook)+(.com)+",
    "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$"
]


messages = [
    "Invalid username should be like this abc_123 or abc. abc",
    "This email address is not valid",
    "The password length must be at least 8 uppercase, lowercase letters, numbers, symbols like @aA123#*"
]


print(custom_validate(userData, pattrens, messages))
Enter fullscreen mode Exit fullscreen mode

Result

{'good': {'username': 'amr_123', 'email': 'amr@aol.com', 'password': '123---Ab#'}}

Enter fullscreen mode Exit fullscreen mode

Do you not prefer dealing with the regex 🙃?

Now in the new version 🥳🎉, you can perform validation using callback functions. From the validators library


from onelinevalidation import validate_data_with_callbacks
import validators


user_data = {
    'btc': '00000000000000000000000',
    'amount': 0.5,
    'md5': '0000'
}

messages = [
    'Invalid btc address',
    'The minimum value must be at least $1.',
    'Invalid md5 value'
]

from functools import partial

callbacks = [
    validators.btc_address,
    {'func': partial(validators.between, min_val = 1, max_val = 100)},
    validators.md5
]

result = validate_data_with_callbacks(user_data, callbacks, messages)
print(result)
Enter fullscreen mode Exit fullscreen mode

Result

{'errors': {'btc': 'Invalid btc address', 'amount': 'The minimum value must be at least $1.', 'md5': 'Invalid md5 value'}}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)