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

Flask使用get_or_404查询用户时报错,如何正确使用该方法?

正确使用Flask-SQLAlchemy的404查询方法

get_or_404() 是SQLAlchemy专为主键查询设计的方法,它默认会把传入的值匹配模型的主键字段(通常是id),而且不支持关键字参数,这就是你遇到两种错误的原因。

要实现按username查询且无结果时抛出404,正确写法是结合filter_by()和first_or_404():

user = User.query.filter_by(username=username).first_or_404()

这个写法和你原本的filter_by(...).first()逻辑一致,但会在查询不到数据时自动触发404错误响应,完全满足你的需求。

如果你的User模型主键是username(而非默认的id),那可以直接用User.query.get_or_404(username),但显然你的模型主键是id,所以这种场景不适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:24:54