Advertisement
IsakViste

L1: Webapp.py

May 17th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.91 KB | None | 0 0
  1. import time
  2. from time import gmtime, strftime
  3. from flask import *
  4. import sys
  5. import psycopg2
  6.  
  7. #NE PAS MODIFIER LA LIGNE SUIVANTE
  8. app = Flask(__name__)
  9. app.secret_key = "ouHISP8mkC"
  10.  
  11. #"/" est l'addresse du site "/" = "http://isak.viste.emi.u-bordeaux.fr/flask/"
  12. #Par exemple: "/a" = "http://isak.viste.emi.u-bordeaux.fr/flask/a"
  13. @app.route("/", methods = ['POST', 'GET'])
  14. def main():
  15.     if('username' not in session):
  16.         # Si pas connecter, va la page d'inscription
  17.         return(redirect(url_for('login')))
  18.     try:
  19.         #Se connecter a la base de donner SQL de l'utilisateur iviste (login de l'ent)
  20.         conn = psycopg2.connect("host=dbserver dbname=iviste user=iviste")
  21.         cur = conn.cursor()
  22.         # Insert into database
  23.         if request.method == 'POST':
  24.             if(request.form['button'] == 'Submit'):
  25.                 u_name = session['username']
  26.                 u_message = request.form['message']
  27.                 u_time = strftime("%Y-%m-%d %H:%M:%S", gmtime())
  28.                 # If message is not null
  29.                 if(len(u_message) > 0):
  30.                     command = "INSERT INTO usermessages VALUES ( '" + u_name + "', '" + u_message + "', '" + u_time + "');"
  31.                     try:
  32.                         cur.execute(command)
  33.                         conn.commit()
  34.                         print("Message Sent")
  35.                     except Exception as e :
  36.                         return "error when running command: " + command + " : " + str(e)
  37.             if(request.form['button'] == 'Logout'):
  38.                 return(redirect(url_for('logout')))
  39.  
  40.  
  41.         cur.execute("SELECT mtime, color, users.username, message FROM users, usermessages WHERE users.username = usermessages.username ORDER BY mtime;")
  42.         rows = cur.fetchall()
  43.         rows = reversed(rows)
  44.  
  45.         # Close connection
  46.         cur.close()
  47.         conn.close()
  48.     except Exception as e:
  49.         return "Cannot connect to database: " + str(e)
  50.  
  51.     return render_template("chat.html", chat = rows)
  52.  
  53. @app.route("/login", methods = ['POST', 'GET'])
  54. def login():
  55.     try:
  56.         conn = psycopg2.connect("host=dbserver dbname=iviste user=iviste")
  57.         cur = conn.cursor()
  58.         if(request.method == 'POST'):
  59.             # REGISTER
  60.             if(request.form['button'] == 'Register'):
  61.                 u_name = request.form['r_name']
  62.                 u_password = request.form['r_pass']
  63.                 u_color = request.form['r_color']
  64.                 if(len(u_name) > 0 or len(u_password) > 0):
  65.                     command = "INSERT INTO users VALUES ( '" + u_name + "', '" + u_password + "', '" + u_color + "');"
  66.                     try:
  67.                         cur.execute(command)
  68.                         conn.commit()
  69.                         print("Register Successful")
  70.                     except Exception as e :
  71.                         return "error when running command: " + command + " : " + str(e)
  72.                 # Close connection
  73.                 cur.close()
  74.                 conn.close()
  75.  
  76.             if(request.form['button'] == 'Login'):
  77.                 u_name = request.form['l_name']
  78.                 u_password = request.form['l_pass']
  79.                 if(len(u_name) > 0 and len(u_password) > 0):
  80.                     cur.execute("SELECT * FROM users;")
  81.                     rows = cur.fetchall()
  82.                     for i in rows:
  83.                         if(u_name == i[0] and u_password == i[1]):
  84.                             session['username'] = u_name
  85.                             print("Login Successful")
  86.                             return(redirect(url_for('main')))
  87.     except Exception as e:
  88.         return "Cannot connect to database: " + str(e)
  89.  
  90.     return render_template("login.html")
  91.  
  92. @app.route("/logout")
  93. def logout():
  94.     session.pop('username', None)
  95.     return(redirect(url_for('login')))
  96.  
  97. #NE SURTOUT PAS MODIFIER
  98. if __name__ == "__main__":
  99.    app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement