[英]Flask not streaming JSON response
我有以下 flask 應用程序應該 stream JSON 響應
目錄結構:
server -
api.py
resources -
stream.py
api.py
from flask import Flask
from flask_restful import Api
from resources.stream import Stream
from flask_compress import Compress
compress = Compress()
app = Flask(__name__)
compress.init_app(app)
api = Api(app)
api.add_resource(Stream, '/stream')
if __name__ == '__main__':
app.run(debug=False,host='0.0.0.0')
資源目錄中的 stream.py
from flask import Response, request, stream_with_context
from flask_restful import Resource
class Stream(Resource):
def get(self):
def generator():
yield '{"data": ['
#creating large number of entries for data array with yield
yield ']}'
resp = Response(stream_with_context(generator()), status=200, content_type='application/json')
return resp
我使用 python3.9 api.py 啟動了 flask 應用程序
當我點擊 url http://127.0.0.1:5000/stream
但在網絡選項卡中我可以看到一些問題時,我能夠得到響應:
Waiting for server response
state 中,它以某種方式等待完成整個響應然后開始下載。 下面是我想要實現的 output。 流式傳輸的 output 將啟動Content Downloading
並且不會卡在Waiting for server response
我找到了解決我面臨的問題的方法。 我正在使用導致此問題的 flask_compress。 刪除它會 stream 響應預期。 謝謝你的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.