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
def valid(self, val): if isinstance(val, (float, int)): if val > self.num: raise FieldValidException(self.message) else: return val raise FieldValidException('该字段必须是一个数字')
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
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)
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
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)
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)
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
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
def valid(self, val): if not isinstance(val, bool): if not val: raise FieldValidException(self.message) return val
def valid(self, val): if isinstance(val, str) and self.min_ <= len(val) <= self.max_: return val raise FieldValidException(self.message)
def valid(self, val): if not re.match(self.regex, val): raise FieldValidException(self.message) return val
def valid(self, val): if val is None: raise FieldValidException(self.message) return val
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)
def valid(self, val): if not isinstance(val, (float, int)): raise FieldValidException(self.message) return val