Spielstand speichern - Form + UPDATE
This commit is contained in:
parent
b968825aae
commit
1299ce57e0
1 changed files with 35 additions and 11 deletions
46
app/app.py
46
app/app.py
|
|
@ -127,24 +127,48 @@ def render_page(title, body_html):
|
||||||
</html>"""
|
</html>"""
|
||||||
|
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/", methods=["GET", "POST"])
|
||||||
@app.route("/app")
|
@app.route("/app", methods=["GET", "POST"])
|
||||||
@app.route("/app/")
|
@app.route("/app/", methods=["GET", "POST"])
|
||||||
def start():
|
def start():
|
||||||
body = """
|
if request.method == "POST": # Formular abgeschickt?
|
||||||
<h1>Verlassenes Raumschiff</h1>
|
name = request.form["name"].strip()
|
||||||
<p>Du bist der einzige Überlebende an Bord. Erkunde das Schiff und aktiviere das Notsignal.</p>
|
if name != "":
|
||||||
<div class="actions">
|
session["spieler"] = name # App merkt sich: das bist du
|
||||||
<a class="btn" href="/app/raum/1">Mission starten</a>
|
db = get_db()
|
||||||
</div>
|
db.execute(
|
||||||
"""
|
"INSERT OR IGNORE INTO spielstand (spieler, raum_id) VALUES (?, 1)",
|
||||||
return render_page("Verlassenes Raumschiff", body)
|
(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("/raum/<int:id>", methods=["GET", "POST"])
|
||||||
@app.route("/app/raum/<int:id>", methods=["GET", "POST"])
|
@app.route("/app/raum/<int:id>", methods=["GET", "POST"])
|
||||||
def raum(id):
|
def raum(id):
|
||||||
db = get_db()
|
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()
|
r = db.execute("SELECT * FROM raeume WHERE id=?", (id,)).fetchone()
|
||||||
if not r:
|
if not r:
|
||||||
db.close()
|
db.close()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue