【问题标题】:Return Blank from Python flask API从 Python 烧瓶 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 返回空字符串在浏览器显示“”,浏览器必须刷新并显示完整的空白屏幕

标签: python api flask


【解决方案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 作为响应代码浏览器不会刷新,如果数据框为空,则必须返回空白屏幕。
    猜你喜欢
    • 1970-01-01
    • 2021-04-16
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2017-11-09
    • 2021-11-18
    相关资源
    最近更新 更多