This commit is contained in:
2025-03-18 10:10:17 +01:00
parent 3c6d2f7c45
commit 42a11abe61

21
app.py
View File

@@ -1,4 +1,4 @@
from flask import Flask, render_template, request, jsonify, url_for from flask import Flask, render_template, request, jsonify, url_for, redirect, session
import pandas as pd import pandas as pd
import os import os
import logging import logging
@@ -9,6 +9,7 @@ import requests
from collections import defaultdict from collections import defaultdict
app = Flask(__name__, static_folder='static') app = Flask(__name__, static_folder='static')
app.secret_key = 'your_secret_key' # Setzen Sie einen sicheren geheimen Schlüssel für die Session
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -21,6 +22,9 @@ CSV_FILE = "data/customers.csv"
# Lade Umgebungsvariablen # Lade Umgebungsvariablen
load_dotenv() load_dotenv()
# Statisches Passwort aus der .env Datei
STATIC_PASSWORD = os.getenv('LOGIN_PASSWORD', 'changeme')
def clean_dataframe(df): def clean_dataframe(df):
"""Konvertiert NaN-Werte in None für JSON-Kompatibilität""" """Konvertiert NaN-Werte in None für JSON-Kompatibilität"""
return df.replace({np.nan: None}) return df.replace({np.nan: None})
@@ -48,12 +52,27 @@ def load_data():
logger.error(f"Fehler beim Laden der CSV-Datei: {str(e)}") logger.error(f"Fehler beim Laden der CSV-Datei: {str(e)}")
return None return None
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
password = request.form.get('password')
if password == STATIC_PASSWORD:
session['logged_in'] = True
return redirect(url_for('index'))
else:
return render_template('login.html', error="Falsches Passwort")
return render_template('login.html')
@app.route('/') @app.route('/')
def index(): def index():
if not session.get('logged_in'):
return redirect(url_for('login'))
return render_template('index.html') return render_template('index.html')
@app.route('/search') @app.route('/search')
def search(): def search():
if not session.get('logged_in'):
return redirect(url_for('login'))
try: try:
# CSV-Datei laden # CSV-Datei laden
df = load_data() df = load_data()