If you're querying for whether or not a string value exists in a column, be sure to make the column nullable in the model definition.
some_str = db.Column(db.String(30), nullable=True)
That way you can query as so:
if str(column_type)!='SMALLINT' and check in (0,1):
items = items.filter(func.lower(getattr(self.model, k)).is_(None))
items = items.filter(func.lower(getattr(self.model, k)).isnot(None))
where check is a boolean value, eg from a querystring:
You can't use != as you might expect, because you're building the query dynamically.