Todos los tipos de validación son esenciales hoy en día, teniendo en cuenta todos los datos no estructurados que entran y salen de los sistemas. Además de la validación del lado del cliente, las validaciones del lado del servidor son igualmente esenciales en el desarrollo web. Este artículo analiza una forma en que la validación se puede inyectar en varios marcos, como Flask o Django.
El matraz-gladiador de Python es un módulo que proporciona las siguientes características:
- Validación del lado del servidor permitida de cualquier formulario.
- Se puede extender a cualquier marco .py.
- Permite funcionalidades como verificar rango, requerido, tipo, etc.
Instalación
Este módulo no viene incorporado con python y, por lo tanto, debe instalarse explícitamente
pip install matraz-gladiador
Desde este módulo, la función de validación() se utiliza para realizar el trabajo.
Sintaxis:
validar (datos, validadores)
Parámetros:
- datos: datos en consideración
- validadores: dice sobre qué base se debe hacer la validación
- requerido : El validador requerido para verificar la presencia del campo siempre.
- format_email: Validador para verificar el correo electrónico.
- length_max : Comprueba la longitud máxima del texto.
- length_min : Comprueba la longitud mínima del texto.
- length : Comprueba la longitud en particular.
- type_ : Comprueba un tipo en particular.
- regex_ : Comprueba la expresión regular.
- _value : Comprueba un valor particular.
- in_ : Comprobaciones en una lista particular.
- lt : comprueba si hay menos de un valor entero.
- gt : Comprueba si hay un valor mayor que el entero.
- eq : Comprueba el valor entero igual.
- ne : comprueba si no hay un valor entero igual.
- gte : Comprueba si hay un valor entero mayor que igual.
- lte : comprueba si hay menos que igual al valor entero.
- true_if_empty : si está vacío, este validador devuelve verdadero.
- skip_on_fail : si la validación falla, esto se puede usar para omitir las pruebas de validación.
Acercarse :
- En el paso inicial, los datos de entrada se formulan en formato de diccionario.
- Las validaciones se inicializan como tuplas de tuplas, donde el primer elemento de la tupla es clave para verificar y los siguientes valores son validaciones que deben aplicarse a la clave correspondiente.
- La función de validación() toma las validaciones y el diccionario de entrada y devuelve Verdadero si todas las validaciones son verdaderas, de lo contrario devuelve Falso.
A continuación se presentan sus diversas implementaciones que realizan validaciones basadas en diferentes validadores.
Ejemplo 1 :
Python3
import gladiator as gl # input test data valid_data = { 'email': 'manjeet@gfg.com', 'password': '123456', 'name': 'Manjeet', 'age': 24, 'access': "User" } # assigning validations field_validations = ( ('email', gl.required, gl.format_email), ('password', gl.required, gl.length_min(5)), ('name', gl.required, gl.type_(str)), ('age', gl.required, gl.type_(int), gl.eq(24)), ('access', gl.required, gl.in_(['User', 'Admin'])) ) # checking data using validate() print("Validating data : ") result = gl.validate(field_validations, valid_data) print("Is data valid ? : " + str(bool(result)))
Producción :
Validando datos:
¿Son válidos los datos? : Verdadero
Ejemplo 2:
Python3
# Using regex, gt and length validators import gladiator as gl # input test data valid_data = { 'email': 'manjeet@gfg.com', 'password': '123456', 'name': 'Manjeet', 'Gender': 'M', 'age': 24, } # assigning validations # checks name by regex, gender using length range, age greater than 18. field_validations = ( ('email', gl.required, gl.format_email), ('password', gl.required, gl.length_min(5)), ('name', gl.required, gl.type_(str), gl.regex_('[a-zA-Z][a-zA-Z ]+')), ('age', gl.required, gl.type_(int), gl.gt(18)), ('Gender', gl.length(1, 4)), ) # checking data using validate() print("Validating data : ") result = gl.validate(field_validations, valid_data) print("Is data valid ? : " + str(bool(result)))
Producción :
Validando datos:
¿Son válidos los datos? : Verdadero
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA