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)
Comments
0 B
|👍
/👎