From a38c6af449b970e70420dc3e848202cf6b69f0d9 Mon Sep 17 00:00:00 2001 From: Rich Date: Sat, 3 Jul 2021 08:40:30 +0100 Subject: [PATCH] . --- app/__init__.py | 2 ++ app/models.py | 10 ++++++++++ app/routes.py | 12 +++++++++++- app/templates/login.html | 16 ++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 app/models.py create mode 100644 app/templates/login.html diff --git a/app/__init__.py b/app/__init__.py index 8c19e77..cc23185 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,6 +1,8 @@ from flask import Flask +from flask_login import LoginManager app = Flask(__name__) app.config["SECRET_KEY"] = "fdsaGHJ768fdsGHKJHG656&*(&%&*(fsd" +login = LoginManager(app) from app import routes diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..e008cd5 --- /dev/null +++ b/app/models.py @@ -0,0 +1,10 @@ +from werkzeug.security import generate_password_hash, check_password_hash +from flask_login import UserMixin + + +class User(UserMixin): + def set_password(self, password): + self.password_hash = generate_password_hash(password) + + def check_password(self, password): + return check_password_hash(self.password_hash, password) diff --git a/app/routes.py b/app/routes.py index 312d8d1..eddfa41 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,5 +1,15 @@ -from flask import render_template +from flask import render_template, flash, redirect, url_for from app import app +from app.forms import LoginForm + + +@app.route("/login", methods=["GET", "POST"]) +def login(): + form = LoginForm() + if form.validate_on_submit(): + flash("Login requested for user {}, remember_me={}".format(form.username.data, form.remember_me.data)) + return redirect("/index") + return render_template("login.html", title="Sign In", form=form) @app.route("/") diff --git a/app/templates/login.html b/app/templates/login.html new file mode 100644 index 0000000..8e66c33 --- /dev/null +++ b/app/templates/login.html @@ -0,0 +1,16 @@ +{% block content %} +

Sign In

+
+ {{ form.hidden_tag() }} +

+ {{ form.username.label }}
+ {{ form.username(size=32) }} +

+

+ {{ form.password.label }}
+ {{ form.password(size=32) }} +

+

{{ form.remember_me() }} {{ form.remember_me.label }}

+

{{ form.submit() }}

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