# -*- 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 from flask_mail import Mail, Message app = Flask(__name__) app.config.from_envvar('CONF') mail = Mail(app) 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('/') @app.route('/home/') @login_required def main_page(): print "i'm here" 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 = hashlib.md5(request.form['password']).hexdigest() session['lang'] = request.form['language'] print session return redirect(url_for('main_page')) return render_template('login.htm') if __name__=="__main__": app.run()