我使用flask webserver来保持我的UI。该服务器生成一个日志文件。我想让我们说,HTML页面下方的一个iframe(通过烧瓶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()
,并通过使用这样的:
var output = document.getElementById('output');
var xhr = new XMLHttpRequest();
xhr.open('GET', '{{ url_for('stream') }}');
xhr.send();
setInterval(function() {
output.textContent = xhr.responseText;
}, 1000);
我得到的日志在一个干净的整页。我如何以上述方式得到这个结果。
p.s:我有将在未来呈现的多个html文件,我希望以一种方式在所有页面中具有该日志文件的iframe视图。
2016-03-12
Sina Sh