在 Python/Flask 应用程序中,我定义了这个端点,如果客户端试图获取我的数据库中不存在的 id,我希望返回 404。
例如:
@app.route('/plants/<int:plant_id>', methods=['GET'])
def get_plant(plant_id):
try:
plant = Plant.query.filter(Plant.id == plant_id).one_or_none()
if plant is None:
abort(404)
return jsonify({
'success': True,
'plant': plant.format()
})
except:
abort(422)
问题是当我尝试执行它时,它似乎总是引发异常并返回 422。
如果我删除 try/except 语法,它会按预期工作并返回 404。但我失去了处理异常的能力......所以它不是我的解决方案。
为什么我做错了?在不将 404 设置为异常返回的情况下,如何正确触发 404?
谢谢!!