def __call__(self, *args, **kwargs):
super(TypeFilter, self).__call__()
direct_type = self.rule.direct_type
# ?????????????????????????
if isinstance(self.value, direct_type) and self.rule.safe:
return self.value
if direct_type == str:
if self.rule.safe:
return self.value
else:
import MySQLdb
self.value = MySQLdb.escape_string(self.value)
if isinstance(self.value, bytes):
self.value = self.value.decode('utf-8')
return self.value
# ???????bool??
elif direct_type == bool and self.value in _false_str_list:
return False
else:
try:
return self.rule.direct_type(self.value)
except ValueError:
raise ParamsValueError(self.error_code, filter=self)
评论列表
文章目录