📜  在Python使用 Flask-gladiator 模块进行基本验证

📅  最后修改于: 2022-05-13 01:54:37.244000             🧑  作者: Mango

在Python使用 Flask-gladiator 模块进行基本验证

考虑到所有流入和流出系统的非结构化数据,如今各种验证都是必不可少的。除了客户端验证,服务器端验证在 Web 开发中同样重要。本文讨论了一种将验证注入各种框架(例如 Flask 或 Django)的方法。

Python 的flask-gladiator是一个提供以下功能的模块:

  • 允许任何形式的服务器端验证。
  • 可以扩展到任何 .py 框架。
  • 允许检查范围、所需、类型等功能。

安装 

此模块不是内置于Python的,因此必须明确安装

在这个模块中,validate()函数用于完成工作。



参数:

  • 数据:考虑的数据
  • 验证器:告诉必须在什么基础上进行验证
    • required :始终检查字段是否存在所需的验证器。
    • format_email :用于检查电子邮件的验证器。
    • length_max :检查文本的最大长度。
    • length_min :检查最小文本长度。
    • length :检查特定长度。
    • type_ :检查特定类型。
    • regex_ :检查正则表达式。
    • _value :检查特定值。
    • in_ :检查特定列表。
    • lt :检查小于整数值。
    • gt :检查是否大于整数值。
    • eq :检查相等的整数值。
    • ne :检查不相等的整数值。
    • gte :检查大于等于整数值。
    • lte :检查小于等于整数值。
    • true_if_empty :如果为空,则此验证器返回 true。
    • skip_on_fail :如果验证失败,这可用于跳过验证测试。

方法 :

  • 在初始步骤中,输入数据以字典格式表示。
  • 验证被初始化为元组的元组,其中元组的第一个元素是要检查的关键,接下来的值是应应用于相应键的验证。
  • validate()函数接受验证和输入字典,如果所有验证都为真,则返回 True,否则返回 False。

下面给出了基于不同验证器执行验证的各种实现。

示例 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)))


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)))


输出 :



示例 2:

蟒蛇3

# 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)))

输出 :