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

时间:2016-03-12 19:18:47

标签: javascript python html iframe flask

这可能是一个简单的问题,但我有点困惑。

我正在使用flask webserver来保持我的UI。此服务器生成日志文件。我希望在html页面下面显示一个iframe(通过flask render_template('index.html')呈现的那个),显示该文件的内容。

我知道像this这样的问题,感谢@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视图。

1 个答案:

答案 0 :(得分:0)

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

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

那就是它。