Files
Erik Thiele 20eacbb82f Version2
2026-04-12 15:59:19 +02:00

98 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""
Girls Day Quiz Flask App finale Version
"""
from datetime import datetime
from flask import render_template, request, redirect
from GirlsDayPython import app
# -------------------
# Funktionen zum Code laden / speichern
# -------------------
def load_code():
try:
with open("code.txt", "r", encoding="utf-8") as f:
return f.read().strip()
except:
return ""
def save_code(code):
with open("code.txt", "w", encoding="utf-8") as f:
f.write(code)
# -------------------
# Home / Quiz-Seite
# -------------------
@app.route('/', methods=["GET", "POST"])
@app.route('/home', methods=["GET", "POST"])
def home():
message = ""
color = "green"
success = False # Flag für diese Anfrage
correct_code = load_code()
if request.method == "POST":
user_code = request.form["code"]
# Länge prüfen
if len(user_code) != len(correct_code):
message = f"Ungültige Eingabe. Der Code ist {len(correct_code)}-stellig."
color = "red"
else:
errors = [i+1 for i in range(len(correct_code)) if user_code[i] != correct_code[i]]
if not errors:
message = "Herzlichen Glückwunsch! Sie haben einen Preis gewonnen."
color = "green"
success = True # Eingabefeld ausblenden für diese Antwort
else:
if len(errors) == 1:
message = f"Falscher Code! An der Stelle {errors[0]} ist eine falsche Zahl eingetragen worden."
else:
stellen = " und ".join(map(str, errors))
message = f"Falscher Code! An den Stellen {stellen} sind falsche Zahlen eingetragen worden."
color = "red"
return render_template(
'index.html',
title='Girls Day Quiz',
year=datetime.now().year,
message=message,
color=color,
success=success
)
# -------------------
# Admin-Seite
# -------------------
@app.route('/admin', methods=["GET", "POST"])
def admin():
current_code = load_code()
if request.method == "POST":
new_code = request.form["code"]
save_code(new_code)
return redirect("/")
return render_template("admin.html", code=current_code)
# -------------------
# Kontakt / About
# -------------------
@app.route('/contact')
def contact():
return render_template(
'contact.html',
title='Contact',
year=datetime.now().year,
message='Your contact page.'
)
@app.route('/about')
def about():
return render_template(
'about.html',
title='About',
year=datetime.now().year,
message='Your application description page.'
)