Вы можете использовать декоратор @copy_current_request_context
, чтобы сделать копию контекста запроса, который может использовать ваша функция потока событий:
from time import sleep
from flask import Flask, request, Response, copy_current_request_context
app = Flask(__name__)
@app.route('/events')
def events():
@copy_current_request_context
def _events():
while True:
# yield "Test" # Works fine
yield request.args[0]
sleep(1)
return Response(_events(), mimetype="text/event-stream")
Обратите внимание, что для возможности использования этого декоратора целевая функция должна бытьперемещено в функцию представления, которая имеет исходный запрос.