在通过 flask Web 服务器呈现的 html 页面中显示 iframe 中文本文件的内容

Display the contents of a text file within iframe in a html page rendered via flask web server

本文关键字:iframe 显示 中文 文本 文件 html flask Web 服务器      更新时间:2023-09-26
这可能是

一个简单的问题,但我有点困惑。

我正在使用烧瓶网络服务器来保持我的 UI 正常运行。此服务器生成日志文件。比方说,我想在 html 页面下方有一个 iframe(通过烧瓶 render_template('index.html') 呈现的那个)显示该文件的内容。

我知道这样的问题,多亏了@davidism我学到了关于提供静态文件的好概念,但这并不是我想要实现的。

到目前为止,我可以再次感谢@davidism,我有一个这样的 main.py 文件:

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>

我在一个干净的整页中得到那个日志。我怎么能以上述方式得到这个。

p.s:我有多个 html 文件,这些文件将在将来呈现,我想以一种在所有页面中拥有日志文件的 iframe 视图的方式实现这一点。

iframe 实际上只是包含在页面上元素中的另一个页面。所以你的主页只会做:

<iframe src ="/stream"></iframe>

仅此而已。