У меня есть API, который должен возвращать только пустоту и статус 200 OK, если нет доступных данных
Я пробовал следующие вещи и столкнулся с этой ошибкой
if df.empty:
return '' , 200
Это возвращает "" в браузере
if df.empty:
return json.loads('{}'), 200
Это возвращение {} в браузере
Статус отправки 204 (NO CONTENT) делает предыдущий контент таким, как он есть в браузере
Как я могу вернуть полный пробел со статусом 200?
Я нашел решение после тщательного изучения фляжных документов
from flask import Response
.....
if df.empty:
return Response(status = 200)
Ваш первый пример показан на моей консоли, как другие упоминают в комментариях:
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' не может быть вызван
РЕДАКТИРОВАТЬ:
Это источник страницы в опере (и хром также).
И это код для вашего второго примера, из которого я получаю сообщение об ошибке.
from flask import Flask, json
app = Flask(__name__)
@app.route('/')
def index():
return json.loads('{}'), 200
return (' ', 200)
, он даст пустой ответ с кодом состояния 200.