-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
63 lines (49 loc) · 1.88 KB
/
app.py
File metadata and controls
63 lines (49 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from flask import Flask, render_template, request, redirect, url_for, session
from flask_babel import Babel, gettext as _
from flask import send_from_directory
import os
import sqlite3
from datetime import datetime
# Flask-Babel für Übersetzungen
app = Flask(__name__)
app.secret_key = "nirkiz-0gehna-cutbiB"
app.config["BABEL_DEFAULT_LOCALE"] = "de"
app.config["BABEL_TRANSLATION_DIRECTORIES"] = "translations"
# 1) Sprach-Selector-Funktion VOR Babel-Init definieren
def get_locale() -> str:
"""Ermittelt die aktuell gewünschte Sprache (Session → Fallback 'de')."""
return session.get("lang", "de")
# 2) Babel mit locale_selector registrieren
babel = Babel(app, locale_selector=get_locale)
DATABASE = "bauteile.db"
# Sprache umschalten
@app.route("/lang/<lang_code>")
def set_language(lang_code):
session["lang"] = lang_code
return redirect(request.referrer or url_for("index"))
# Kontext-Variablen für alle Templates
def inject_globals():
return {
"current_year": datetime.now().year,
"current_lang": get_locale() # wird im <select> benötigt
}
app.context_processor(inject_globals)
# SQLite-Helper
def get_db_connection():
conn = sqlite3.connect(DATABASE)
conn.row_factory = sqlite3.Row
return conn
# ---------------------------------------------------------------------------
@app.route('/uploads/<path:filename>')
def uploaded_file(filename):
return send_from_directory(os.path.join(app.root_path, 'uploads'), filename)
# Hauptseite ---------------------------------------------------------------
@app.route("/")
def index():
conn = get_db_connection()
parts = conn.execute("SELECT * FROM bauteile ORDER BY id DESC").fetchall()
conn.close()
return render_template("index.html", parts=parts)
# ---------------------------------------------------------------------------
if __name__ == "__main__":
app.run(debug=True)