Ich schreibe eine Web-App, wo Datenbankabfrage kommt aus zwei Auswahlfelder, eine ist über sex
und die andere ist über class_type
. In meinem Code, ich habe eine Basisabfrage haben, die das folgende Formular sein all
bessere Möglichkeit zum Schreiben von Abfragen mit 2 Auswahlkriterien
q = User.query.with_entities(*(getattr(User, col) for col in cols))
Und je nachdem, ob sex
und class_type
sind so gewählt hat, breche ich die Fälle als
if sex=='all' and class_type=='all':
rows = q.all()
elif sex=='all' and class_type!='all':
rows = q.filter_by(class_type=class_type)
elif sex!='all' and class_type=='all':
rows = q.filter_by(sex=sex)
else:
rows = q.filter_by(sex=sex, class_type=class_type)
Gibt es eine folgt bessere Möglichkeit, diese Logik zu schreiben?