从 Python 烧瓶 API 返回空白

Posted

技术标签:

【中文标题】从 Python 烧瓶 API 返回空白【英文标题】:Return Blank from Python flask API 【发布时间】:2019-05-06 23:20:28 【问题描述】:

我有一个 API,如果没有可用数据,它必须只返回空白和状态为 200 OK

我尝试过以下事情并遇到这些错误

if df.empty:
   return '' , 200

这会在浏览器中返回“”

if df.empty:
   return json.loads(''), 200

这会在浏览器中返回

Send status as 204 (NO CONTENT) 使之前的内容与浏览器上的一样

如何返回状态为 200 的完全空白?

【问题讨论】:

你应该简单地return (' ', 200),它会给出空响应,状态码为200。 你的第一个例子只是在浏览器中为我返回一个空字符串,这正是你想要的我猜。 @SyedSaadAhmed by return (' ', 200),它在浏览器中返回“”,我必须返回空白响应。 @Joost 返回空字符串在浏览器显示“”,浏览器必须刷新并显示完整的空白屏幕 【参考方案1】:

我在彻底浏览了 Flask 文档后找到了解决方案

from flask import Response
.....
if df.empty:
   return Response(status = 200)

【讨论】:

【参考方案2】:

您的第一个示例显示在我的控制台中,正如其他人在 cmets 中提到的那样:

127.0.0.1 - - [05/Dec/2018 18:46:35] "GET / HTTP/1.1" 200 -

您还可以在开发者控制台的Network 选项卡中查看文档的状态。

直到我明确定义204 - NO CONTENT,我才看到它:

@app.route('/')
def index():
    return '', 204

您的第二个示例对我不起作用并给了我一个错误:

TypeError: 'dict' 对象不可调用

编辑:

这是 Opera 中页面的来源(也是 chrome)。

这是您的第二个示例的代码,我从中得到了一个错误。

from flask import Flask, json

app = Flask(__name__)


@app.route('/')
def index():
    return json.loads(''), 200

【讨论】:

我面临的问题将空白返回到浏览器,在浏览器中发送空字符串显示“”。对于我的第二个示例,它可以正常工作,对我来说没有任何错误,请您分享您的代码 sn-p。 我不想添加一个空白屏幕作为示例,但实际上我什么也没得到。只有白屏,无论是歌剧还是铬。如果我检查源代码,它什么都没有。检查编辑。 第二个例子是import jsonreturn json.loads('') 通过发送 204 作为响应代码浏览器不会刷新,如果数据框为空,则必须返回空白屏幕。

以上是关于从 Python 烧瓶 API 返回空白的主要内容,如果未能解决你的问题,请参考以下文章

Flutter / Dart 没有从本地托管的烧瓶 api 返回值

使用烧瓶从选择标签中获取价值

你如何序列化一个python烧瓶变量?

如何将python烧瓶函数的执行限制为单个实例

Python 多处理管理器在烧瓶 API 中使用时显示错误

限制对烧瓶 REST API 的访问