蟒蛇请求验证
request-validator的Python项目详细描述
请求验证器
python请求(json)验证器
如何安装
pip install request_validator
如何使用
映像您有一个从rest api服务器获得的json响应,并且
必须验证响应。
样本:
from request_validator.serializers import * from request_validator.fields import * class GlossDefSerializer(BaseSerializer): para = CharField() gloss_see_also = CharField(many=True, source="GlossSeeAlso") class GlossEntrySerializer(BaseSerializer): id = IntField(source="ID") sort_as = CharField(source="SortAs") gloss_term = CharField(source="GlossTerm") acronym = CharField(source="Acronym") abbrev = CharField(source="Abbrev", required=True, allow_blank=False) gloss_def = GlossDefSerializer(source="GlossDef") gloss_see = CharField(source="GlossSee") class GlossListSerializer(BaseSerializer): gloss_entry = GlossEntrySerializer(source="GlossEntry") class GlossDivSerializer(BaseSerializer): title = CharField() gloss_list = GlossListSerializer(source="GlossList") class GlossarySerializer(BaseSerializer): title = CharField() gloss_div = GlossDivSerializer(source="GlossDiv") class SampleSerializer(BaseSerializer): glossary = GlossarySerializer() sample_data = { "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": 12, "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } } validator = SampleSerializer(data=sample_data) print('validation status:') print(validator.is_valid()) print("\nvalidation errors:") print(validator.get_errors()) print("\nvalidated data:") print(validator.validate_data())
以上示例输出:
validation status: False validation errors: {'glossary': {'gloss_div': {'gloss_list': {'gloss_entry': {'abbrev': ['This field cannot be blank']}}}}} validated data: {'glossary': {'title': 'example glossary', 'gloss_div': {'title': 'S', 'gloss_list': {'gloss_entry': {'acronym': 'SGML', 'gloss_term': 'Standard Generalized Markup Language', 'gloss_def': {'gloss_see_also': ['GML', 'XML'], 'para': 'A meta-markup language, used to create markup languages such as DocBook.'}, 'gloss_see': 'markup', 'sort_as': 'SGML', 'id': 12}}}}}
推荐PyPI第三方库
- 热门话题
- 图形Java仿射变换以旋转通用路径 IntelliJ IDEA中的java代码标记为编译器错误,在Eclipse中可以正常工作 java ArrayList的containsAll返回了错误的值 如何在安卓中的片段活动中添加java代码 java通过使用netbeans调用jbutton,将带有行的jbutton添加到jtable中 java在更新arrayAdapter/listView之前更新最终列表 java如何在另一个项目中导入包含AspectJ方面和注释的项目 为什么我的java布尔测试总是失败? Eclipse中的java自动激活 在Bluetooth for Java(更具体地说是Android)之上是否有TCP/IP协议栈实现? java Android Studio通过intent传递ArrayList并填充ListView