summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstilbruch <stilbruch@protonail.com>2022-03-21 19:09:56 -0500
committerstilbruch <stilbruch@protonail.com>2022-03-21 19:09:56 -0500
commit0ba2434ed1a1dca443506e3a4204807502bf41f6 (patch)
tree7974e3b35c0587ebe83ecd9f407aeee21ecebfab
parent996f907fdd00e41b6101ec3eb6bfb40d15d6b442 (diff)
downloadStrengthy-0ba2434ed1a1dca443506e3a4204807502bf41f6.tar.xz
Strengthy-0ba2434ed1a1dca443506e3a4204807502bf41f6.zip
More database work
-rw-r--r--app/app.py8
-rw-r--r--app/login.py18
-rw-r--r--app/routes.py5
-rw-r--r--requirements.txt5
4 files changed, 36 insertions, 0 deletions
diff --git a/app/app.py b/app/app.py
index 7f105fd..8f6fafe 100644
--- a/app/app.py
+++ b/app/app.py
@@ -1,8 +1,16 @@
from flask import Flask
+from flask_sqlalchemy import SQLAlchemy
# Setup app before doing imports
app = Flask(__name__)
app.config['TEMPLATES_AUTO_RELOAD'] = True
+app.config['SECRET_KEY'] = "super duper secret" # FIXME: do not use in prod
+app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://../strenghty.db'
+app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
+
+# Setup SQLAlchemy
+# https://flask-sqlalchemy.palletsprojects.com/en/2.x/quickstart/#a-minimal-application
+db = SQLAlchemy(app)
# Load routes
import routes
diff --git a/app/login.py b/app/login.py
index 7e441b2..6d4b4a2 100644
--- a/app/login.py
+++ b/app/login.py
@@ -1,7 +1,25 @@
from app import app
from database import database_get
from flask_login import LoginManager, UserMixin, current_user
+from flask_wtf import FlaskForm
+from wtforms import StringField, PasswordField, BooleanField
+from wtforms.validators import DataRequired, Email
+# https://python.plainenglish.io/implementing-flask-login-with-hash-password-888731c88a99
+
+# Forms classes for flask_wtf
+class LoginForm(FlaskForm):
+ username = StringField("username", validators=[DataRequired()])
+ password = PasswordField("password", validators=[DataRequired()])
+ remember_me = BooleanField()
+
+class RegisterForm(FlaskForm):
+ username = StringField("username", validators=[DataRequired()])
+ password = PasswordField("password", validators=[DataRequired()])
+ name = StringField("name")
+ email = StringField("email", validators=[DataRequired(), Email()])
+
+# User class for flask_login
class User(UserMixin):
def __init__(self, id, email, password_hash):
self.id = unicode(id)
diff --git a/app/routes.py b/app/routes.py
index 0cb9043..fdf65e3 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -1,6 +1,7 @@
from app import app
from database import database_get
from flask import render_template
+from login import *
@app.route("/", methods=["GET"])
def index():
@@ -12,4 +13,8 @@ def login():
@app.route("/register", methods=["GET"])
def register():
+ form = RegisterForm()
+
+ #if form.validate_on_submit():
+ # # TODO: make sure username isnt taken somehow
return render_template('user/register.html')
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..2bc12bc
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,5 @@
+email_validator
+flask
+flask_login
+flask_SQLAlchemy
+flask_wtf