Guest User

Untitled

a guest
Apr 8th, 2018
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. from flask import Flask, request, session, redirect, url_for, abort, render_template, flash
  2. from flask_sqlalchemy import SQLAlchemy
  3. import json
  4. from sqlalchemy import Table, DateTime
  5. import datetime
  6.  
  7. app = Flask(__name__)
  8.  
  9. app.config['SECRET_KEY'] = 'KEY'
  10. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///W3FinalExam.db'
  11.  
  12. db=SQLAlchemy(app)
  13.  
  14. class LoginDetails(db.Model):
  15. email = db.Column(db.String(100), primary_key=True)
  16. password = db.Column(db.String(240))
  17.  
  18. def __init__(self, email, password):
  19. self.email = email
  20. self.password = password
  21.  
  22. def __repr__(self):
  23. return '<Entry\nEmail Id: %r\nPassword: %r\n>' % (self.email, self.password)
  24.  
  25. db.create_all()
  26.  
  27. def authenticate(e, p):
  28. details=LoginDetails.query.filter_by(email=e).all()
  29. if(len(details)>0):
  30. if details[0].password==p:
  31. return ""
  32. else: return "Incorrect Password"
  33. return "No Email exists"
  34.  
  35. def authenticateEmail(e):
  36. details=LoginDetails.query.filter_by(email=e).all()
  37. if(len(details)>0):
  38. return False
  39. return True
  40.  
  41. @app.route('/')
  42. def homepage():
  43. return render_template('homepage.html')
  44.  
  45. @app.route('/login', methods=['GET', 'POST'])
  46. def login():
  47. error = None
  48. if request.method == 'POST':
  49. error = (authenticate(request.form['email'], request.form['password']))
  50. if error=="":
  51. session['logged_in'] = True
  52. session['log_email'] = request.form['email']
  53. flash("You are logged in")
  54. return redirect(url_for('homepage'))
  55. return render_template('login.html', error=error)
  56. try:
  57. if session['logged_in']==True:
  58. return redirect('/')
  59. except:
  60. return render_template('login.html', error="")
  61. return render_template('login.html', error="")
  62.  
  63. @app.route('/logout')
  64. def logout():
  65. session['logged_in'] = False
  66. return redirect(url_for('homepage'))
  67.  
  68. @app.route('/signup', methods=['GET', 'POST'])
  69. def signup():
  70. error = None
  71. if request.method == 'POST':
  72. if(authenticateEmail(request.form['email'])):
  73. if request.form['password'] != request.form['rePassword']:
  74. error = 'Passwords mismatch'
  75. else:
  76. newUser = LoginDetails(email=request.form['email'],password=request.form['password'])
  77. db.session.add(newUser)
  78. print(newUser)
  79. db.session.commit()
  80. # return redirect(url_for('login',status="signup successful"))
  81. return render_template('login.html', error="signup successful")
  82. return render_template('signup.html', error=error)
  83. else:
  84. error = 'The Email Id entered is already registered!!'
  85. return render_template('signup.html', error=error)
  86. try:
  87. if session['logged_in']==True:
  88. return redirect('/')
  89. except:
  90. return render_template('signup.html', error="")
  91. return render_template('signup.html', error="")
  92.  
  93. @app.route('/yourdetails')
  94. def yourdetails():
  95. try:
  96. if session['logged_in']==True:
  97. customer = LoginDetails.query.filter_by(email=session['log_email']).one()
  98. return render_template('yourdetails.html',customer=customer)
  99. return redirect(url_for('login'))
  100. except:
  101. return redirect(url_for('login'))
  102.  
  103. if __name__ == '__main__':
  104. app.run(debug=True)
Add Comment
Please, Sign In to add comment