diff --git a/app.py b/app.py new file mode 100644 index 0000000..1243b98 --- /dev/null +++ b/app.py @@ -0,0 +1,91 @@ +from flask import * +from datetime import timedelta +from flask_sqlalchemy import SQLAlchemy +from flask_sqlalchemy_session import * + +app = Flask(__name__) +app.secret_key = "hello" +app.permanent_session_lifetime = timedelta(minutes=5) +app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:///users.sqlite3' +app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + +db = SQLAlchemy(app) + + +class users(db.Model): + _id = db.Column("id", db.Integer, primary_key=True) + name = db.Column(db.String(100)) + email = db.Column(db.String(100)) + + def __init__(self, name, email): + self.name = name + self.email = email + + +@app.route('/') +def index(): + return render_template("index.html") + + +@app.route('/login', methods=["GET", "POST"]) +def login(): + if request.method == "POST": + session.permanent = True + user = request.form["nm"] + session["user"] = user + flash("Login Successful!") + found_user = users.query.filter_by(name=user).first() + if found_user: + session["email"] = found_user.email + else: + usr = users(user, "") + db.Session.add(usr) + db.Session.commit() + + return redirect(url_for("user")) + else: + if "user" in session: + flash("Already Logged in") + return redirect(url_for("user")) + + return render_template("login.html") + + +@app.route("/user", methods=["POST", "GET"]) +def user(): + email = None + if "user" in session: + user = session["user"] + + if request.method == "POST": + email = request.form["email"] + session["email"] = email + found_user = users.query.filter_by(name=user).first() + found_user.email = email + db.Session.commit() + else: + if "email" in session: + email = session["email"] + + return render_template("user.html", email=email) + else: + flash("You are not logged in") + return redirect(url_for("login")) + + +@app.route("/view") +def view(): + return render_template("view.html", values=users.query.all()) + + +@app.route("/logout") +def logout(): + session.pop("user", None) + flash("You have been logged out", "info") + session.pop("email", None) + return redirect(url_for("login")) + + +if __name__ == '__main__': + db.create_all() + app.run(debug=True) diff --git a/base.html b/base.html new file mode 100644 index 0000000..029693e --- /dev/null +++ b/base.html @@ -0,0 +1,39 @@ + + + + + {% block title %} {% endblock %} + + + + +
+ {% block content %} + {% endblock %} +
+ + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..133599f --- /dev/null +++ b/index.html @@ -0,0 +1,5 @@ +{% extends "base.html" %} +{% block title %}Home Page{% endblock %} +{% block content %} +Hello and welcome to the homepage +{% endblock %} \ No newline at end of file diff --git a/login.html b/login.html new file mode 100644 index 0000000..d224f63 --- /dev/null +++ b/login.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} +{% block title %}Login Page{% endblock %} +{% block content %} + {% with messages=get_flashed_messages() %} + {% if messages %} + {% for msg in messages %} +

{{ msg }}

+ {% endfor %} + {% endif %} + {% endwith %} +
+

+

+
+{% endblock %} \ No newline at end of file diff --git a/user.html b/user.html new file mode 100644 index 0000000..f89eff5 --- /dev/null +++ b/user.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% block title %}User{% endblock %} +{% block content %} + {% with messages=get_flashed_messages() %} + {% if messages %} + {% for msg in messages %} +

{{ msg }}

+ {% endfor %} + {% endif %} + {% endwith %} +

Welcome, {{ user }}

+
+ + +
+ +{% endblock %} \ No newline at end of file diff --git a/view.html b/view.html new file mode 100644 index 0000000..801ea6b --- /dev/null +++ b/view.html @@ -0,0 +1,7 @@ +{% extends "base.html" %} +{% block title %}View{% endblock %} +{% block content %} + {% for item in values %} +

Name: {{ item.name }},Email: {{ item.email }}

+ {% endfor %} +{% endblock %} \ No newline at end of file