diff options
Diffstat (limited to 'wedding.py')
| -rw-r--r-- | wedding.py | 44 |
1 files changed, 20 insertions, 24 deletions
@@ -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')) |
