我正在尝试使用Flask应用程序中的文本文件(例如日志文件)的最后100行创建响应。我需要一个简单的格式化文本(至少具有行号),而不是纯文本文件(例如,类似GitHub代码的东西)。
我在其他语言中也遇到了类似的问题,但是我不确定这是否是使用HTML / CSS或Flask本身处理它的最佳方法,但这对我来说并不重要。 这是我的脚本,该脚本以简单的纯文本形式返回最后100行:
from flask import Flask
from flask import request
from flask import Response
app = Flask(__name__)
def tail(file, n=1, bs=1024):
f = open(file)
f.seek(0,2)
l = 1-f.read(1).count('\n')
B = f.tell()
while n >= l and B > 0:
block = min(bs, B)
B -= block
f.seek(B, 0)
l += f.read(block).count('\n')
f.seek(B, 0)
l = min(l,n)
lines = f.readlines()[-l:]
f.close()
return lines
@app.route('/logs', methods = ['GET'])
def print_logs():
if request.method == 'GET':
file_path = "Logs.txt"
data = tail(file_path, 100)
return Response(data, mimetype='text/plain')
if __name__ == "__main__":
app.run(host="localhost", port=80, debug=True, threaded=True)