Spielstand speichern - Form + UPDATE

This commit is contained in:
DylanBarnes 2026-07-15 14:18:25 +00:00
parent b968825aae
commit 1299ce57e0

View file

@ -127,24 +127,48 @@ def render_page(title, body_html):
</html>"""
@app.route("/")
@app.route("/app")
@app.route("/app/")
@app.route("/", methods=["GET", "POST"])
@app.route("/app", methods=["GET", "POST"])
@app.route("/app/", methods=["GET", "POST"])
def start():
body = """
<h1>Verlassenes Raumschiff</h1>
<p>Du bist der einzige Überlebende an Bord. Erkunde das Schiff und aktiviere das Notsignal.</p>
<div class="actions">
<a class="btn" href="/app/raum/1">Mission starten</a>
</div>
"""
return render_page("Verlassenes Raumschiff", body)
if request.method == "POST": # Formular abgeschickt?
name = request.form["name"].strip()
if name != "":
session["spieler"] = name # App merkt sich: das bist du
db = get_db()
db.execute(
"INSERT OR IGNORE INTO spielstand (spieler, raum_id) VALUES (?, 1)",
(name,)
)
db.commit()
db.close()
return redirect("/app/raum/1")
html = '<h1>Verlies</h1>'
if "spieler" in session:
db = get_db()
s = db.execute(
"SELECT raum_id FROM spielstand WHERE spieler=?",
(session["spieler"],)
).fetchone()
db.close()
if s:
html = html + '<p>Willkommen zurück, ' + html.escape(session["spieler"]) + '!</p>' \
+ '<a href="/app/raum/' + str(s["raum_id"]) + '" class="btn">Weiterspielen</a><hr>'
return html + '<form method="post">Dein Name: ' \
+ '<input name="name"> <button>Abenteuer starten</button></form>'
@app.route("/raum/<int:id>", methods=["GET", "POST"])
@app.route("/app/raum/<int:id>", methods=["GET", "POST"])
def raum(id):
db = get_db()
if "spieler" in session: # angemeldet?
db.execute(
"UPDATE spielstand SET raum_id=? WHERE spieler=?",
(id, session["spieler"])
)
db.commit()
r = db.execute("SELECT * FROM raeume WHERE id=?", (id,)).fetchone()
if not r:
db.close()