使用Flask返回格式化的文本文件

时间:2019-05-01 07:01:33

标签: python flask

我正在尝试使用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)

0 个答案:

没有答案