Как работать с json в html-шаблоне, отправляемом через флягу SSE - PullRequest
0 голосов
/ 28 января 2019

Мне нужно бесконечно вставлять json в мой HTML-шаблон.В HTML-шаблоне я хочу управлять этим JSON и вставить данные из него на HTML-страницу.Вот мой код:

@app.route('/stream')
def stream():
    def event_stream():
        counter = 0
        while True:
            yield "data: {}\n\n".format({"a": "1", "b": "2"})
            time.sleep(10)
    return Response(event_stream(), mimetype="text/event-stream")

и HTML-шаблон:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>My Webpage</title>
</head>
<body>
    <script>
        var eventSource = new EventSource("/stream");
            eventSource.onmessage = function(e) {
            alert(e.data);
        };
    </script>
</body>
</html>   

На данный момент оповещение не работает.И мой JSON отображается на HTML-странице, даже если удалить JS-скрипт из HTML.Как я могу манипулировать с JSON в моем HTML?

1 Ответ

0 голосов
/ 28 января 2019

Вы можете вернуть json на ваш вызов AJAX и использовать его с «успехом».

Колба:

@app.route('/my_route',methods=['GET','POST'])
def my_function():
    request_json=request.get_json()
    html_string= some_processing(request_json)
    return jsonify(result=html_string)

AJAX:

success : function(data){ $('#id-where_html_goes').html(data.result); },
...