IsakViste icon

L1: Webapp.py

IsakViste | PRO | 05/17/17 12:12:35 PM UTC | 0 ⭐ | 223 👁️ | Never ⏰ | []
Python |

3.91 KB

|

None

|

0 👍

/

0 👎

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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎