tfse-app-api-v0.2/Utils/ValidateUtil.py

95 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import re
from Utils.ErrorUtil import ReturnConditionCheckFailed
class Validate(object):
@staticmethod
def email(param):
""""""
regex = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$"
case = (len(param) > 7) and (re.match(regex, param) is not None)
result = True if case else False
return result
@staticmethod
def password(param):
""""""
regex = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8,}$"
case = (len(param) >= 8) and (re.match(regex, param) is not None)
return True if case else False
@staticmethod
def image(param):
""""""
mimetype = param.mimetype
return True if mimetype in ['image/jpeg', 'image/png'] else False
class ValidateAttr(object):
def __init__(self, **kwargs):
""""""
self.kwargs = kwargs
self.error_info = kwargs['error_info'] if 'error_info' in kwargs else (
'{}异常'.format(kwargs['mark']) if 'mark' in kwargs else ('{}异常'.format(
self.__dict__['fields_map'][self.kwargs['field']]) if 'fields_map' in self.__dict__ else None))
self.error_code = kwargs['error_code'] if 'error_code' in kwargs else 200
def __get__(self, instance, owner):
if self.kwargs['field'] in instance.__dict__:
return instance.__dict__[self.kwargs['field']]
def __set__(self, instance, value):
""""""
def not_default():
"""无默认值时属性设值检æŸ""
if 'type' in self.kwargs:
"""æ£æŸ¥å®žä¾çšå±žæ§ç±»åž""
if not isinstance(value, self.kwargs['type']):
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
if 'length' in self.kwargs:
"""检查实ä¾çš„属性值长åºä¸€èˆ¬æ˜¯strç±»åž)"""
if len(value) != self.kwargs['length']:
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
if 'in_list' in self.kwargs:
"""检查实ä¾å±žæ€§æ˜¯å<EFBFBD>¦åŒ…å<EFBFBD>«äºŽåˆ—表ä¸å±žæ€§æœ‰åˆ—表åŒé<EFBFBD>žåˆ—表两ç§<EFBFBD>情况)"""
if type(value) is not list:
if value not in self.kwargs['in_list']:
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
else:
for item in value:
if item not in self.kwargs['in_list']:
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
if 'instance_list' in self.kwargs:
"""检查实例列è¡""
if type(value) is not list:
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
else:
for item in value:
if not isinstance(item, self.kwargs['instance_list']):
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
if 'func' in self.kwargs:
"""属æ§æ£æŸ¥å½æ""
if not list(map(self.kwargs['func'], [value]))[0]:
raise ReturnConditionCheckFailed(self.error_info, self.error_code)
instance.__dict__[self.kwargs['field']] = value
if 'default' in self.kwargs:
"""实例属性默认å€""
if value is None:
value = self.kwargs['default']
instance.__dict__[self.kwargs['field']] = value
else:
not_default()
else:
not_default()