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