98 lines
2.8 KiB
Python
98 lines
2.8 KiB
Python
# -*- 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.'
|
||
)
|