add register, login and main page with basic functionality

This commit is contained in:
2026-02-24 17:07:18 +01:00
parent f5ac44886b
commit 81ca96ed77
9 changed files with 162 additions and 3 deletions
+57
View File
@@ -0,0 +1,57 @@
from flask import Blueprint, render_template, request, redirect, url_for, session, flash
from app.db import get_db
from werkzeug.security import generate_password_hash, check_password_hash
auth_bp = Blueprint("auth", __name__)
@auth_bp.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
username = request.form["username"]
password = request.form["password"]
db = get_db()
user = db.execute("SELECT * FROM users WHERE username = ?", (username,)).fetchone()
if user and check_password_hash(user["password"], password):
session["user_id"] = user["id"]
return redirect(url_for("main.main"))
else:
flash("Invalid username or password")
return render_template("login.html")
@auth_bp.route("/register", methods=["GET", "POST"])
def register():
if request.method == "POST":
username = request.form.get("username")
password = request.form.get("password")
if not username or not password:
flash("Please fill out all fields")
return render_template("register.html")
db = get_db()
existing_user = db.execute(
"SELECT id FROM users WHERE username = ?",
(username,)
).fetchone()
if existing_user:
flash("Username already taken")
return render_template("register.html")
hashed_password = generate_password_hash(password)
db.execute(
"INSERT INTO users (username, password) VALUES (?, ?)",
(username, hashed_password)
)
db.commit()
flash("Account created! Please log in.")
return redirect(url_for("auth.login"))
return render_template("register.html")
+7
View File
@@ -0,0 +1,7 @@
from flask import Blueprint, render_template
main_bp = Blueprint("main", __name__)
@main_bp.route("/", methods=["GET", "POST"])
def main():
return render_template("main.html")