gpt4 book ai didi

Python Flask 和 Psycopg -- 在 WHERE 中查询字符串 request.get

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:37 25 4
gpt4 key购买 nike

将 flask 中的查询字符串变量作为 WHERE 子句中的参数传递给 psycopg 的正确方法是什么?

具体来说,如果未设置变量,我不想将变量添加到 WHERE 子句中:

 id = int(request.args.get('id'))
cur.execute("SELECT * FROM data WHERE id = %s;", id)

如果 id 是 None,我想要没有 WHERE 子句的 SQL:

SELECT * FROM data

唯一的方法是使用 if 语句吗?

最佳答案

如果未提供(有效的)id 查询参数,则发出不同的查询:

id = request.args.get('id', type=int)
if id is not None:
cur.execute("SELECT * FROM data WHERE id = %s", (id,))
else:
# No (valid) id given, give everything
cur.execute("SELECT * FROM data")

请注意,我为 MultiDict.get() method 使用了 type 关键字参数;如果键丢失或无法转换为整数,该方法返回一个默认值(None,除非通过 default 参数另外指定)。

关于Python Flask 和 Psycopg -- 在 WHERE 中查询字符串 request.get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37647258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com