Пример #1
0
 def valid(self, val) -> datetime:
     """校验时间格式:
     可以是字符串形式的一串数字, 或者是数字 (时间戳)
     或者是 yyyy-mm-dd [HH:MM:SS]的格式
     """
     now = datetime.now()
     if not isinstance(val, datetime):
         if isinstance(val, str):
             try:
                 if ':' in val:
                     date = datetime.strptime(val, '%Y-%m-%d %H:%M:%S')
                 elif '-' in val:
                     date = datetime.strptime(val, '%Y-%m-%d')
                 else:
                     timestamp = float(val)
                     date = datetime.fromtimestamp(timestamp)
             except (ValueError, TypeError):
                 raise FieldValidException(self.message)
         elif isinstance(val, (float, int)):
             date = datetime.fromtimestamp(val)
         else:
             raise FieldValidException(self.message)
     else:
         date = val
     if date is not None and date > now:
         raise FieldValidException(self.message)
     return date
Пример #2
0
 def valid(self, val):
     if isinstance(val, (float, int)):
         if val > self.num:
             raise FieldValidException(self.message)
         else:
             return val
     raise FieldValidException('该字段必须是一个数字')
Пример #3
0
 def valid(self, val):
     if not isinstance(val, str):
         raise FieldValidException('该字段必须是一个字符串格式')
     code = re.match(r'^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0-3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$', val)
     if not code:
         raise FieldValidException('手机号码格式不正确')
     return val
Пример #4
0
 def valid(self, val) -> int:
     if not isinstance(val, int):
         self.message = '该字段必须是一个int类型的自然数'
         raise FieldValidException(self.message)
     if self.min_ <= val <= self.max_:
         return val
     self.message = f'该字段必须是一个介于{self.min_}和{self.max_}之间的自然数'
     raise FieldValidException(self.message)
Пример #5
0
 def valid(self, val) -> int:
     try:
         val = int(val)
     except (ValueError, TypeError):
         raise FieldValidException(self.message)
     if val < self.min_:
         raise FieldValidException(self.message)
     return val
Пример #6
0
 def valid(self, val):
     if isinstance(val, bool):
         if val:
             return True
         raise FieldValidException(self.message)
     elif isinstance(val, int):
         if val:
             return True
         raise FieldValidException(self.message)
     elif isinstance(val, str):
         if val == 'True' or val == 'true':
             return True
         raise FieldValidException(self.message)
     raise FieldValidException(self.message)
Пример #7
0
 def valid(self, val):
     if isinstance(val, bool):
         if not val:
             return False
         raise FieldValidException(self.message)
     elif isinstance(val, int):
         if not val:
             return False
         raise FieldValidException(self.message)
     elif isinstance(val, str):
         if val == 'False' or val == 'false':
             return False
         raise FieldValidException(self.message)
     raise FieldValidException(self.message)
Пример #8
0
 def valid(self, val):
     if isinstance(val, datetime):
         return val
     if not isinstance(val, str):
         raise FieldValidException('该字段必须是一个字符串格式')
     try:
         if ':' in val:
             date = datetime.strptime(val, '%Y-%m-%d %H:%M:%S')
         elif '-' in val:
             date = datetime.strptime(val, '%Y-%m-%d')
         else:
             raise FieldValidException(self.message)
     except (ValueError, TypeError):
         raise FieldValidException(self.message)
     return date
Пример #9
0
 def valid(self, val):
     now = datetime.now()
     if not isinstance(val, datetime):
         if isinstance(val, str):
             try:
                 if ':' in val:
                     date = datetime.strptime(val, '%Y-%m-%d %H:%M:%S')
                 elif '-' in val:
                     date = datetime.strptime(val, '%Y-%m-%d')
                 else:
                     timestamp = float(val)
                     date = datetime.fromtimestamp(timestamp)
             except (ValueError, TypeError):
                 raise FieldValidException(self.message)
         elif isinstance(val, (float, int)):
             date = datetime.fromtimestamp(val)
         else:
             raise FieldValidException(self.message)
     else:
         date = val
     if date is not None and date < now:
         raise FieldValidException(self.message)
     return date
Пример #10
0
 def valid(self, val):
     if not isinstance(val, bool):
         if not val:
             raise FieldValidException(self.message)
     return val
Пример #11
0
 def valid(self, val):
     if isinstance(val, str) and self.min_ <= len(val) <= self.max_:
         return val
     raise FieldValidException(self.message)
Пример #12
0
 def valid(self, val):
     if not re.match(self.regex, val):
         raise FieldValidException(self.message)
     return val
Пример #13
0
 def valid(self, val):
     if val is None:
         raise FieldValidException(self.message)
     return val
Пример #14
0
 def valid(self, val):
     if isinstance(val, str) and re.match(r'^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', val):
         return val
     raise FieldValidException(self.message)
Пример #15
0
 def valid(self, val):
     if not isinstance(val, (float, int)):
         raise FieldValidException(self.message)
     return val