首页 > 解决方案 > Flask-sqlalchemy 相当于查询一个数据库的多个 WHERE 条件

问题描述

我已经使用 MySQL.connector 成功查询了一个数据库:

search_term = form.searchstring.data
mycursor.execute('''SELECT *
                    FROM post
                    WHERE title like '%'''+search_term+'''%'
                    OR description like '%'''+search_term+'''%'
                    OR priority like '%'''+search_term+'''%'
                    OR date_posted like '%'''+search_term+'''%'
                    OR time_posted like '%'''+search_term+'''%'
                    OR date_closed like '%'''+search_term+'''%'
                    OR time_closed like '%'''+search_term+'''%'
                    OR status like '%'''+search_term+'''%'
                    OR assigned_to like '%'''+search_term+'''%'
                    OR reported_by like '%'''+search_term+'''%'
                    ;''')
res =  mycursor.fetchall()

我正在为上述的 flask-sqlalchemy 等价物苦苦挣扎。IE..

res = Post.query.########

标签: pythonsqlalchemy

解决方案


像这样的东西应该工作:

search_term = "%{}%".format(search_string)
res=Post.query.filter(Post.title.like(search_term) | Post.description.like(search_term) 
 ..go on with all the filters... | Post.reported_to.like(search_term)).all()

推荐阅读