flask 执行原生sql 如果怎么做到如果值为空就不执行这个筛选条件
例如 mysql 的
set @a = ;
if(@a is null , 0=0,find_in_set (a,@a))
flask 的原生语句该怎么写?
class MyBooleanField(wtf.BooleanField):
def __init__(self, label=None, validators=None, false_values=None, **kwargs):
# don't accept blank as False, so that default will trigger
super(MyBooleanField, self).__init__(label, validators, (False, 'false', 0, '0'), **kwargs)
def process_formdata(self, valuelist):
if not valuelist or valuelist[0] == '' or valuelist[0] is None:
self.data = self.default
elif valuelist[0] in self.false_values:
self.data = False
else:
self.data = True
值为空就不执行这个筛选条件?
你是说某个变量值为空就不执行sql?
那你加个if语句不就完了,判断是不是空
一般最简单的就是,判断条件,然后按照条件进行拼接sql,要么就是用,python的字典, 把键的值,设置为对应的条件名称, 值为,对应的条件,如果能从这个字典里面get到值,而不是None的话,说明有这个条件,让其自动拼接,获取到字典的值,自动给字符串累加,不然就要研究sql,比较麻烦,得不偿失