您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在更新日志文件时显示其内容

在更新日志文件时显示其内容

使用Flask视图可以永久不断地从文件中读取数据并流式传输响应。使用JavaScript从流中读取并更新页面。本示例发送了整个文件,您可能希望在某个时候截断该文件以节省带宽和内存。此示例在两次读取之间睡眠,以减少来自无限循环的cpu负载,并允许其他线程有更多活动时间。

from time import sleep
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/stream')
def stream():
    def generate():
        with open('job.log') as f:
            while True:
                yield f.read()
                sleep(1)

    return app.response_class(generate(), mimetype='text/plain')

app.run()

<pre id="output"></pre>
<script>
    var output = document.getElementById('output');

    var xhr = new XMLHttpRequest();
    xhr.open('GET', '{{ url_for('stream') }}');
    xhr.send();

    setInterval(function() {
        output.textContent = xhr.responseText;
    }, 1000);
</script>

这几乎与该答案相同,后者描述了如何流式传输和解析消息,尽管永远从外部文件中读取数据已经足够新颖,可以说是它自己的答案。这里的代码更简单,因为我们不在乎解析消息或结束流,而只是永久拖尾文件

其他 2022/1/1 18:17:31 有523人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶