# -*- coding: utf-8 -*- import sqlite3 #all the imports from flask import Flask, request, session, g, redirect, url_for, render_template from functools import wraps import hashlib app = Flask(__name__) app.config.from_envvar('CONF') def query_db(query, args=(), one=False): cur = get_db().execute(query, args) rv = cur.fetchone() if one else cur.fetchall() cur.close() return rv def connect_db(): conn = sqlite3.connect(app.config['DATABASE'], detect_types=sqlite3.PARSE_DECLTYPES) conn.row_factory = sqlite3.Row return conn def get_db(): db = getattr(g, 'sqlite_db', None) if db is None: db = g.sqlite_db = connect_db() return db @app.teardown_appcontext def close_db(error): """Closes the database again at the end of the request.""" db = getattr(g, 'sqlite_db', None) if db: db.close() def login_required(f): @wraps(f) def decorated_function(*args, **kwargs): if 'user_name' not in session: return redirect(url_for('login', next=request.url)) return f(*args, **kwargs) return decorated_function @app.route('/getting/') def getting_there(): return render_template("{0}/getting.htm".format(session["lang"]), lang = session["lang"]) @app.route('/gifts/') def gifts(): return render_template("{0}/gifts.htm".format(session["lang"]), lang= session["lang"]) @app.route('/lodging/') def lodging(): return render_template("{0}/lodging.htm".format(session["lang"]), lang = session["lang"]) @app.route('/rsvp/', methods=['GET', 'POST']) def rsvp(): if request.method == 'GET': r = query_db("SELECT * from guests where user_name=?", (session["user_name"],), one=True) return render_template("{0}/rsvp.htm".format(session["lang"]), lang = session["lang"], form=r) if request.method == 'POST': db = get_db() cur = db.execute("UPDATE guests set ", args) @app.route('/') @app.route('/home/') @login_required def main_page(): return render_template("{0}/main.htm".format(session["lang"]), lang=session["lang"]) @app.route('/login/', methods=['GET', 'POST']) def login(): session.clear() if 'user_name' in session: return redirect(url_for('main_page')) error = None if request.method == 'POST': session['user_name'] = request.form['username'] #password = request.form['password'].hexdigest() session['lang'] = request.form['language'] return redirect(url_for('main_page')) return render_template('login.htm') if __name__=="__main__": app.run()