python - 如何返回关于成功的 bool 值并仍然在 python 中包含 http 状态代码?

标签 python return-value http-error

我希望能够在方法调用成功时返回成功,但在失败时仍然能够返回 http 错误代码。

显然,唯一评估为 False 的数值是 0,因此以数字形式返回 http 代码会将所有这些评估为 true。

我的印象是,解决方案是返回一个对象,该对象仅对 200-2xx 值评估为真,并且还会转换为数字,以便人们可以比较它。

您是否知道有人采用了类似的方法? -- 我不喜欢在这种情况下引发异常的想法。

最佳答案

只返回两个结果,成功标志和http响应:

def some_function():
    return success, http_response

并使用元组赋值:

success, response = some_function()
if success:

requests module 的方法takes 是返回一个响应对象总是,然后让你选择根据响应代码引发异常:

response = requests.get(url)
response.raise_for_status()

哪里Response.raise_for_status() method为您的 API 用户提供引发异常的选项。另一种选择是测试状态代码:

if not 200 <= response.status_code <= 299:
    # problem status response

这两种方法的优点是它们明确。不要试图重载具有多种含义的返回值。如果 2xx 范围之外的 HTTP 响应是异常,则通过引发异常来处理它。

关于python - 如何返回关于成功的 bool 值并仍然在 python 中包含 http 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637875/

相关文章:

python - 安装IbPy以在spyder(anaconda)中使用

python - 三维数据集

python - 从分类器中检索训练功能名称列表

javascript - Ajax 调用将 "0000000154"返回为 108

javascript - 函数是否总是返回值

asp.net - ResponseMode ="File"不工作

python - 将符号矩阵传递给 sympy.lambdify

mysql - 强制 MySQL 返回 IN 中所有选项的结果

javascript - 为什么这个指向 JS 文件的链接返回未经授权,但它在 HTML 中有效?

java - jsp获取http错误描述