Python 烧瓶流动不';在完成之前,不要返回响应
因此,我尝试将从sql数据库返回的数据块流化。这些数据块似乎是流式的,但是当我点击端点时,它会在请求完成的最后显示响应,而不是逐块显示流式数据块。我知道这方面已经有问题了,但添加mimetype似乎对我不起作用。我有以下代码: 非常感谢您的帮助Python 烧瓶流动不';在完成之前,不要返回响应,python,python-3.x,flask,generator,flask-sqlalchemy,Python,Python 3.x,Flask,Generator,Flask Sqlalchemy,因此,我尝试将从sql数据库返回的数据块流化。这些数据块似乎是流式的,但是当我点击端点时,它会在请求完成的最后显示响应,而不是逐块显示流式数据块。我知道这方面已经有问题了,但添加mimetype似乎对我不起作用。我有以下代码: 非常感谢您的帮助 def generate_chunks(): result = _get_query_service(repo_url, True).stream_query(qry) chunk_count
def generate_chunks():
result = _get_query_service(repo_url, True).stream_query(qry)
chunk_counter = 0
while True:
chunk = result.fetchmany(5)
chunk_counter += 1
if not chunk:
break
for value in chunk:
yield str(chunk)
return Response(stream_with_context(generate_chunks()), content_type='application/json', status=200)
实际上这是一件小事。上述代码有效 但邮递员和失眠等工具不支持流式数据 如果您希望看到数据流的运行,请使用CURL或python请求 对于CURL,您需要添加
--no buffer
选项来查看流数据
curl --no-buffer -v http://localhost:8082/healthy
对于Python请求,您需要添加stream=True
。例如:
r=requests.post('http://localhost:8082/stream_query,json=dc,stream=True)
r、 编码='utf-8'
对于r.iter_内容中的行(chunk_size=10):#以块的形式打印流数据
打印(行)