You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask-SQLAlchemy 3.0中实现原2.0版本的搜索查询?

在Flask-SQLAlchemy 3.0中实现搜索结果查询

Flask-SQLAlchemy 3.0核心调整是推荐用**会话(Session)**构建查询,但也保留了旧版模型.query的兼容性,以下是两种可行写法:

1. 兼容旧写法(无需大幅改动)

你的原有代码在3.0中依然可用,只需修正字符串拼接的语法错误(缺少加号):

search_results = Posts.query.filter(Posts.content.like('%' + post_searched_form + '%')).order_by(Posts.title).all()

2. 3.0推荐的Session写法

官方更建议通过db.session.query()构建查询,写法如下:

# 确保已初始化db实例
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

# 构建搜索查询
search_pattern = f'%{post_searched_form}%'
search_results = db.session.query(Posts).filter(Posts.content.like(search_pattern)).order_by(Posts.title).all()

更安全的写法(规避字符串拼接问题)

如果担心特殊字符引发的问题,可使用SQLAlchemy的func.concat拼接模糊匹配通配符:

from sqlalchemy import func

search_results = db.session.query(Posts).filter(
    Posts.content.like(func.concat('%', post_searched_form, '%'))
).order_by(Posts.title).all()

内容的提问来源于stack exchange,提问作者efuiojreifh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 15:46:04