From 508e68ccfccc606b0ea3f4f68e03cbc2377e9443 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Sat, 21 Mar 2015 23:26:44 -0400 Subject: form's logic almost working --- wedding.py | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) (limited to 'wedding.py') diff --git a/wedding.py b/wedding.py index 249c940..c480491 100644 --- a/wedding.py +++ b/wedding.py @@ -66,21 +66,20 @@ def rsvp(): form=r) if request.method == 'POST': db = get_db() - args = (request.form["fullname"], - int(request.form["answer"]), - request.form["email"], - request.form["mailing"], - int(request.form["plusone"]), - request.form["plusonename"], - int(request.form["kids"]), - request.form["kidsnames"], - request.form["comments"], - session["user_name"]) - cur = db.execute("""UPDATE guests set full_name=?, - rsvp=?, email=?, mailing=?, plusone=?, plusonename=?, kids=?, - kidsnames=?, comments=? WHERE user_name=?""", args) - db.commit() - cur.close() + f = defaultdict(str) + update_string = [] + args = [] + for k, v in request.form.items(): + update_string.append("{0}=?".format(k)) + if k in ["rsvp", "plusone", "kids"]: + ## convert to integer + args.append(int(v)) + else: + args.append(v) + update_string = ",".join(update_string) + query = "UPDATE guests set %s WHERE user_name=?" % update_string + with db: + db.execute(query, tuple(args+[session['user_name']])) flash("We have updated your information!") return redirect(url_for('rsvp')) @@ -106,15 +105,12 @@ def login(): error = None if request.method == 'POST': db = get_db() - c = db.cursor() - c.execute("SELECT * from guests where user_name=?", - (request.form['username'],)) - if not c.fetchone(): - c.close() - flash(wn[request.form['language']]) - return redirect(url_for('login')) - else: - c.close() + with db: + db.execute("SELECT * from guests where user_name=?", + (request.form['username'],)) + if not db.fetchone(): + flash(wn[request.form['language']]) + return redirect(url_for('login')) if request.form['password'] != app.config['PASSWORD']: flash(wp[request.form['language']]) return redirect(url_for('login')) -- cgit v1.2.3-70-g09d2