V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
prasanta
V2EX  ›  问与答

XData: 为 Python 之禅写的极简主义数据验证工具

  •  
  •   prasanta · 2017-03-24 13:24:57 +08:00 · 1267 次点击
    这是一个创建于 2654 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github: https://github.com/gaojiuli/xdata

    XData

    一款非常实用的数据验证工具, 通常用于请求数据的验证.

    Features

    • 验证数据一步到位
    • 容易扩展,容易自定义数据类型以及验证方式
    • 无第三方依赖

    Required

    • python >= 3.5

    Installation

    pip install xdata

    Usage

    Validated_data

    from xdata import *
    
    class UserSchema(Schema):
        telephone = Str(length=11, required=True)
        password = Str(min_length=8,max_length=16, required=True)
        
    request_data = {
        'telephone':'18180050000',
        'password':'idonotknow'
    }
    
    schema = UserSchema(request_data)
    if schema.valid:
        print(schema.validated_data) # {'telephone': '18180050000', 'password': 'idonotknow'}
    
    

    Errors

    from xdata import *
    
    class UserSchema(Schema):
        telephone = Str(length=11, required=True)
        password = Str(min_length=8, max_length=16, required=True)
    
    
    request_data = {}
    
    schema = UserSchema(request_data)
    if not schema.valid:
        print(schema.errors)  # {'telephone': 'telephone is required', 'password': 'password is required'}
    

    DataTypes

    from xdata import *
    
    DataType(required=True,default='11',choices=[])
    
    Str(length=11, max_length=12,min_length=10,regex="")
    Int(max=10000,min=12)
    Bool(max=10000,min=12)
    Decimal(left=5,right=2)
    DateTime(max_datetime='2001-01-01 00:00:00', min_datetime='2000-01-01 00:00:00')
    Date(max_date='2001-01-01', min_date='2000-01-01')
    Time(max_time='06:00:00', min_time='05:00:00')
    
    

    Test

    coverage run --source=xdata -m pytest && coverage report

    Github: https://github.com/gaojiuli/xdata

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2332 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:33 · PVG 20:33 · LAX 05:33 · JFK 08:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.