从 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 json
return json.loads('')
通过发送 204 作为响应代码浏览器不会刷新,如果数据框为空,则必须返回空白屏幕。以上是关于从 Python 烧瓶 API 返回空白的主要内容,如果未能解决你的问题,请参考以下文章