我想在log.html中显示我的log.txt。 出于某种原因,我的页面完全空白。 而且我无法从我的文件中看到任何内容。 代码:
def log():
with open("logs.txt", "r") as f:
content = f.read()
return render_template('log.html', content=content)
HTML LOG模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Log</title>
<link rel="stylesheet" href="/static/styles/nav.css" />
<link rel="stylesheet" href="/static/styles/basiclayout.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<style>
</style>
<body>
<ul class="nav">
<li ><a href="{{ url_for('hello_world') }}" >Home</a></li>
<li ><a href="{{ url_for('notepad') }}">Notepad</a></li>
<li ><a href="{{ url_for('explorer') }}">Explorer </a></li>
<li class="active"><a href="{{ url_for('log') }}">Log </a></li>
<li ><a href="{{ url_for('upload') }}">Upload </a></li>
<li ><a href="{{ url_for('uploads') }}">Uploads </a></li>
<li ><a href="{{ url_for('logout') }}">Logout</a></li>
</ul>
<div class="alert">
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
</div>
<pre>{{ content }}</pre>
</body>
</html>
现在添加了我的HTML模板。
答案 0 :(得分:3)
return Response(f.read(), mimetype='text/plain')
但你真的想要使用像logstash这样的东西......
答案 1 :(得分:0)
有两个文件,一个是“ file.py”,而相应的HTML文件是从模板文件夹中调用的。
import sys
from flask import Flask, render_template, redirect, url_for, request
app = Flask(__name__, template_folder="/root/templates")
def search():
with open("test","r") as file:
content = file.readlines()
print(content)
return render_template("file2.html", content = content)
if __name__ == "__main__":
app.run(debug=True)
答案 2 :(得分:0)
如果让log
读取文件backwards
以便访问last log first
,也许会更好。
pip3 install file-read-backwards
例如,我将向后显示此代码:
根据您的情况,有必要将
app.py
替换为logs.txt
from flask import Flask, render_template
from file_read_backwards import FileReadBackwards
app = Flask(__name__, template_folder="template")
with FileReadBackwards("app.py") as f:
# getting lines by lines starting from the last line up
b_lines = [ row for row in f ]
@app.route('/', methods=["GET", "POST"])
def index():
return render_template('index.html', b_lines=b_lines)
if __name__ == "__main__":
app.run(debug=True)
放入您的log.html
:
<br>
Description:
<br>
<textarea id="stackoverflow" name="stackoverflow_review" rows="35" cols="55">
{% for line in b_lines %}
{{ line }}
{% endfor %}
</textarea>
输出:
对于您而言,
logs.txt
文件中的最新更改将首先显示。