因此,我有一个称为“跟随”的基本功能,用于监视文件更改。该函数产生添加到该文件的每个新行。至少从我用打印功能测试时看到的那部分来看,该部分效果很好。 现在,我想将这些新行显示为HTML模板中的表格行。
这是我的应用程序的主要功能:
import time
import json
from flask import Flask, render_template
app = Flask(__name__)
def follow(myfile):
myfile.seek(0, 2)
while True:
new_line = myfile.readline()
if not new_line:
time.sleep(0.1)
continue
yield new_line
logfile = open("/files/myfile.log")
new_lines = follow(logfile)
raw_list = []
@app.route("/home")
def output_log():
for new_line in new_lines:
print(new_line)
raw_list.append(new_line)
result_list = json.dumps(raw_list)
print(new_line)
# return render_template("systemlog.html", results=result_list, mimetype='text/html')
if __name__ == "__main__":
app.run(debug=True)
我正在使用jinja模板,并设法从静态文件中显示表中的数据,但是当文件不断更新时该怎么做。请注意,这将是“实时”监视。
如您所见,我尝试了一些绝望的动作,包括在for循环中的每次迭代中渲染文件,但我并没有期望得到任何稳定的结果。另外,我已经看到人们使用ajax来呈现动态内容,但是当以这种方式监视文件时,我不能全神贯注于如何做。
任何建议都值得赞赏