这可能是一个简单的问题,但我有点困惑。
我正在使用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视图。
答案 0 :(得分:0)
iframe实际上只是页面上元素中包含的另一个页面。所以你的主页就是:
<iframe src ="/stream"></iframe>
那就是它。