From 0ba2434ed1a1dca443506e3a4204807502bf41f6 Mon Sep 17 00:00:00 2001 From: stilbruch Date: Mon, 21 Mar 2022 19:09:56 -0500 Subject: More database work --- app/app.py | 8 ++++++++ app/login.py | 18 ++++++++++++++++++ app/routes.py | 5 +++++ 3 files changed, 31 insertions(+) (limited to 'app') 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') -- cgit v1.2.3