Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, request, session, redirect, url_for, abort, render_template, flash
- from flask_sqlalchemy import SQLAlchemy
- import json
- from sqlalchemy import Table, DateTime
- import datetime
- app = Flask(__name__)
- app.config['SECRET_KEY'] = 'KEY'
- app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///W3FinalExam.db'
- db=SQLAlchemy(app)
- class LoginDetails(db.Model):
- email = db.Column(db.String(100), primary_key=True)
- password = db.Column(db.String(240))
- def __init__(self, email, password):
- self.email = email
- self.password = password
- def __repr__(self):
- return '<Entry\nEmail Id: %r\nPassword: %r\n>' % (self.email, self.password)
- db.create_all()
- def authenticate(e, p):
- details=LoginDetails.query.filter_by(email=e).all()
- if(len(details)>0):
- if details[0].password==p:
- return ""
- else: return "Incorrect Password"
- return "No Email exists"
- def authenticateEmail(e):
- details=LoginDetails.query.filter_by(email=e).all()
- if(len(details)>0):
- return False
- return True
- @app.route('/')
- def homepage():
- return render_template('homepage.html')
- @app.route('/login', methods=['GET', 'POST'])
- def login():
- error = None
- if request.method == 'POST':
- error = (authenticate(request.form['email'], request.form['password']))
- if error=="":
- session['logged_in'] = True
- session['log_email'] = request.form['email']
- flash("You are logged in")
- return redirect(url_for('homepage'))
- return render_template('login.html', error=error)
- try:
- if session['logged_in']==True:
- return redirect('/')
- except:
- return render_template('login.html', error="")
- return render_template('login.html', error="")
- @app.route('/logout')
- def logout():
- session['logged_in'] = False
- return redirect(url_for('homepage'))
- @app.route('/signup', methods=['GET', 'POST'])
- def signup():
- error = None
- if request.method == 'POST':
- if(authenticateEmail(request.form['email'])):
- if request.form['password'] != request.form['rePassword']:
- error = 'Passwords mismatch'
- else:
- newUser = LoginDetails(email=request.form['email'],password=request.form['password'])
- db.session.add(newUser)
- print(newUser)
- db.session.commit()
- # return redirect(url_for('login',status="signup successful"))
- return render_template('login.html', error="signup successful")
- return render_template('signup.html', error=error)
- else:
- error = 'The Email Id entered is already registered!!'
- return render_template('signup.html', error=error)
- try:
- if session['logged_in']==True:
- return redirect('/')
- except:
- return render_template('signup.html', error="")
- return render_template('signup.html', error="")
- @app.route('/yourdetails')
- def yourdetails():
- try:
- if session['logged_in']==True:
- customer = LoginDetails.query.filter_by(email=session['log_email']).one()
- return render_template('yourdetails.html',customer=customer)
- return redirect(url_for('login'))
- except:
- return redirect(url_for('login'))
- if __name__ == '__main__':
- app.run(debug=True)
Add Comment
Please, Sign In to add comment