import time from time import gmtime, strftime from flask import * import sys import psycopg2 #NE PAS MODIFIER LA LIGNE SUIVANTE app = Flask(__name__) app.secret_key = "ouHISP8mkC" #"/" est l'addresse du site "/" = "http://isak.viste.emi.u-bordeaux.fr/flask/" #Par exemple: "/a" = "http://isak.viste.emi.u-bordeaux.fr/flask/a" @app.route("/", methods = ['POST', 'GET']) def main(): if('username' not in session): # Si pas connecter, va la page d'inscription return(redirect(url_for('login'))) try: #Se connecter a la base de donner SQL de l'utilisateur iviste (login de l'ent) conn = psycopg2.connect("host=dbserver dbname=iviste user=iviste") cur = conn.cursor() # Insert into database if request.method == 'POST': if(request.form['button'] == 'Submit'): u_name = session['username'] u_message = request.form['message'] u_time = strftime("%Y-%m-%d %H:%M:%S", gmtime()) # If message is not null if(len(u_message) > 0): command = "INSERT INTO usermessages VALUES ( '" + u_name + "', '" + u_message + "', '" + u_time + "');" try: cur.execute(command) conn.commit() print("Message Sent") except Exception as e : return "error when running command: " + command + " : " + str(e) if(request.form['button'] == 'Logout'): return(redirect(url_for('logout'))) cur.execute("SELECT mtime, color, users.username, message FROM users, usermessages WHERE users.username = usermessages.username ORDER BY mtime;") rows = cur.fetchall() rows = reversed(rows) # Close connection cur.close() conn.close() except Exception as e: return "Cannot connect to database: " + str(e) return render_template("chat.html", chat = rows) @app.route("/login", methods = ['POST', 'GET']) def login(): try: conn = psycopg2.connect("host=dbserver dbname=iviste user=iviste") cur = conn.cursor() if(request.method == 'POST'): # REGISTER if(request.form['button'] == 'Register'): u_name = request.form['r_name'] u_password = request.form['r_pass'] u_color = request.form['r_color'] if(len(u_name) > 0 or len(u_password) > 0): command = "INSERT INTO users VALUES ( '" + u_name + "', '" + u_password + "', '" + u_color + "');" try: cur.execute(command) conn.commit() print("Register Successful") except Exception as e : return "error when running command: " + command + " : " + str(e) # Close connection cur.close() conn.close() if(request.form['button'] == 'Login'): u_name = request.form['l_name'] u_password = request.form['l_pass'] if(len(u_name) > 0 and len(u_password) > 0): cur.execute("SELECT * FROM users;") rows = cur.fetchall() for i in rows: if(u_name == i[0] and u_password == i[1]): session['username'] = u_name print("Login Successful") return(redirect(url_for('main'))) except Exception as e: return "Cannot connect to database: " + str(e) return render_template("login.html") @app.route("/logout") def logout(): session.pop('username', None) return(redirect(url_for('login'))) #NE SURTOUT PAS MODIFIER if __name__ == "__main__": app.run(debug=True)