diff --git a/app2.py b/app2.py new file mode 100644 index 0000000..990ce35 --- /dev/null +++ b/app2.py @@ -0,0 +1,39 @@ +import datetime + +from flask import Flask, render_template +from flask_login import login_required, LoginManager + +import auth +from models.User import User + +# Create a new Flask instance +app = Flask(__name__) + + +# Create a new route +@app.route('/') +def index(): + # return 'Hello World' + return render_template('index.html', title='Home', utc_dt=datetime.datetime.now().strftime("%d.%m.%Y %H:%M:%S")) + +@app.route('/test') +@login_required +def secret(): + return 'Pssst!' + + +app.register_blueprint(auth.auth) + + +# Run the application +if __name__ == '__main__': + login_manager = LoginManager() + login_manager.login_view = 'auth.login' + login_manager.init_app(app) + app.secret_key = 'PSSSSSHHHT!' + + @login_manager.user_loader + def load_user(user_id): + return User(user_id, "Test", "test@example.com") + + app.run(port=5000, debug=True) diff --git a/auth.py b/auth.py new file mode 100644 index 0000000..e0a74c6 --- /dev/null +++ b/auth.py @@ -0,0 +1,30 @@ +from flask import Blueprint, render_template, redirect, url_for, request +from flask_login import login_required + +auth = Blueprint('auth', __name__) + +@auth.route('/login') +def login(): + return render_template('auth/login.html') + + +@auth.route('/signup') +def signup(): + return render_template('auth/signup.html') + +@auth.route('/signup', methods=['POST']) +def signup_post(): + email = request.form.get('email') + name = request.form.get('name') + password = request.form.get('password') + + # Save user to database. Maybe log the user in directly. + + return redirect(url_for('auth.login')) + + +@auth.route('/logout') +@login_required +def logout(): + # Log out functionality + return redirect(url_for('main.index')) \ No newline at end of file diff --git a/models/User.py b/models/User.py new file mode 100644 index 0000000..1bf8ab7 --- /dev/null +++ b/models/User.py @@ -0,0 +1,5 @@ +class User: + def __init__(self, id: int, name: str, email: str): + self.id = id + self.name = name + self.email = email \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/templates/auth/login.html b/templates/auth/login.html new file mode 100644 index 0000000..c4af8fa --- /dev/null +++ b/templates/auth/login.html @@ -0,0 +1,28 @@ +{% extends 'layouts/main.html' %} + +{% block content %} +