from flask import Flask, render_template, request, url_for import logging from werkzeug.utils import redirect from .database import get_name_and_replies, record_reply logger = logging.getLogger(__name__) app = Flask('france_rsvp') @app.route('/france/', methods=['GET', 'POST']) def form(): error = None if request.method == 'POST': if ( 'code' in request.form and len(request.form['code']) == 4 ): code = request.form['code'] try: get_name_and_replies(code) except ValueError: error = "Code invalide" else: return redirect(url_for('rsvp', code=code)) else: error = "Code invalide" return render_template('form.html', error=error) @app.route('/france/thanks') def thanks(): return render_template('thanks.html') @app.route('/france/', methods=['GET', 'POST']) def rsvp(code): error = None if request.method == 'POST': try: adults = int(request.form['adults'], 10) children = int(request.form['children'], 10) except (KeyError, ValueError, OverflowError): logger.warning("Invalid reply", exc_info=True) error = "Nombres invalides" else: record_reply(code, adults, children) return redirect(url_for('thanks')) # Lookup guests from code adults = None kids = None try: name, adults, kids = get_name_and_replies(code) except ValueError: error = "Code invalide" return render_template( 'rsvp.html', adults=adults, kids=kids, error=error, )