2 python postgresql sqlalchemy flask
我的 python api 中有以下几行,它根据请求从 postgres db 中删除用户创建的函数。
@func_app.route("/delete", methods=["POST"])
def delete_func():
try:
JSON = request.get_json()
user_func = function_table.query.filter_by(
created_by=token_payload["email"], functionid=JSON["funcId"]
).all()
functionid=JSON["funcId"]
func_detail = function_table.query.filter_by(functionid).first()
user = users_table.query.filter_by(email=token_payload["username"]).first()
if len(user_func) == 0:
log_metric(g.request_id + " " + "No functions found")
return make_response(
jsonify("User does not have any functions. Please try again later."),
204,
)
else:
function_table.query.filter_by(functionid).delete()
db.session.commit()
except Exception as err:
db.session.rollback()
log_metric(g.request_id + " " + str(err))
return make_response(
jsonify(
"Unable to process your request at the moment. Please try again later."
),
400,
)
finally:
db.session.close()
Run Code Online (Sandbox Code Playgroud)
我之前也类似地使用过filter_by,但没有发现任何问题。谁能帮我弄清楚出了什么问题吗?谢谢!
您需要使用 filter_by 中的值定义列名,它采用**kwargs参数而不是*args输入类型。
你需要改变
func_detail = function_table.query.filter_by(functionid).first()
Run Code Online (Sandbox Code Playgroud)
到
func_detail = function_table.query.filter_by(id = functionid).first()
Run Code Online (Sandbox Code Playgroud)
考虑的id是列名称。
有关详细信息,请参阅sqlalchemy 文档。
| 归档时间: |
|
| 查看次数: |
14062 次 |
| 最近记录: |