Логин Python Flask

У меня есть функции входа и выхода пользователей на Flask. Я хочу записывать эти события в .txt файл и отображать их на веб-странице в виде таблицы. У меня уже реализована запись логов но есть сложности с отображением этих логов на веб-странице audit_logs.html.

Также мне нужно реализовать запись событий входа пользователя. Нужна помощь в решение проблемы и настройке записи логов как для входа, так и для выхода пользователей?

def parse_logs(log_file_path):
    logs = []
    with open(log_file_path, 'r') as log_file:
        for line in log_file:
            parts = line.strip().split(', ')
            if len(parts) == 3:
                log_entry = {
                    'user': parts[0],
                    'action': parts[1],
                    'timestamp': parts[2]
                }
                logs.append(log_entry)
            else:
                print(f"Ignoring line with unexpected format: {line}")
    return logs

audit_logs:

@app.route('/audit_logs')
def audit_logs():
    home_dir = os.path.expanduser('~')
    log_file_path = os.path.join(home_dir, "/var/www/basic-flask-app/audit_logs.txt")

    logs = parse_logs(log_file_path)
    logs = reversed(logs)
    return render_template('audit_logs.html', logs=logs)

logout:

@app.route('/logout')
def logout():
    action = 'logged out'
    home_dir = os.path.expanduser("/var/www/basic-flask-app/")
    log_file_path = os.path.join(home_dir, "audit_logs.txt")

    log_entry = f"{session['username']}, {action.capitalize()}, {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n"

    with open(log_file_path, 'a') as log_file:
        log_file.write(log_entry)

    session.clear()
    return render_template('login.html')

login:

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']

    conn = create_connection()
    cursor = conn.cursor()

    cursor.execute(
        "SELECT password FROM users_table WHERE username=?", (username,))
    stored_password_hash = cursor.fetchone()

    if stored_password_hash:
        if hash_password(password) == stored_password_hash[0]:
            session['username'] = username
            session['last_activity'] = time.time()
            return redirect(url_for('main'))
        else:
            return "Invalid username or password"
    else:
        return "Invalid username or password"

    conn.close()

Ответы (0 шт):