0
我有一個名稱,城市和州名的學校名單(1000年)。
有名稱,城市和州輸入字段。
我想按名稱搜索學校。如果他們離開城市或國家輸入空的我想在任何城市,任何州進行搜索。如果他們進入城市(留下狀態空白),然後按名稱和城市搜索。等等。SQLAlchemy燒瓶,匹配部分或全部
底線:使用可用的數據進行搜索,其他所有數據都是「any」。
除了寫出所有可能的組合之外,還有一種快速的方法可以做到嗎?
我有一個名稱,城市和州名的學校名單(1000年)。
有名稱,城市和州輸入字段。
我想按名稱搜索學校。如果他們離開城市或國家輸入空的我想在任何城市,任何州進行搜索。如果他們進入城市(留下狀態空白),然後按名稱和城市搜索。等等。SQLAlchemy燒瓶,匹配部分或全部
底線:使用可用的數據進行搜索,其他所有數據都是「any」。
除了寫出所有可能的組合之外,還有一種快速的方法可以做到嗎?
我正在寫這個,就好像你在使用Flask-SQLAlchemy和WTForms一樣。
...
schools = School.query
if form.name.data:
schools = schools.filter(School.name == form.name.data)
if form.city.data:
schools = schools.filter(School.city == form.city.data)
if form.state.data:
schools = schools.filter(School.state == form.state.data)
# at this point schools is a query filtered with whatever was given
...
這僅僅是一個例子,它改寫,使用過濾器除了平等,等我有「過濾器形式的」這個樣子,並會把額外的方法形式,query()
和filter(query)
上。然後他們可以在視圖中這樣調用:
form = FilterForm(request.args) # use get for filtering
schools = form.query()
if form.validate():
schools = form.filter(schools)
return render_template('schools.html', form=form, schools=schools)
這非常聰明。 – Johnston