现在我正在提供一个带有流\u和\u上下文的文件和一个生成器。如果转到我的浏览器中的/download
端点,并允许下载完成,则到达“Loop complete”print语句。但是,如果我请求下载,然后取消它(在我的浏览器中),则无法到达print语句。你知道吗
下面的代码被简化了。实际上,我正在尝试在用户完成下载或中止下载后进行数据库调用。但当用户中止下载时,就永远达不到该语句。你知道吗
@app.route('/download', methods=['GET'])
def download():
if request.method == 'GET':
def generate():
for i in range(100):
yield i # simplified code
print('Loop complete') # this statement is only reached when the download is completed
return Response(stream_with_context(generate()), mimetype='video/MP2T')
正如@jordanm所建议的,在generate函数中放置try/finally块解决了这个问题。你知道吗
示例:
相关问题 更多 >
编程相关推荐