如何管理通过SSE烧瓶发送的html模板中的json

时间:2019-01-27 21:09:09

标签: python flask server-sent-events

我需要不断地将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>   

暂时警报不起作用。即使从HTML删除js脚本,我的json也会显示在HTML页面上。如何在html中使用json进行操作?

1 个答案:

答案 0 :(得分:0)

您可以将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); },