HabitTracker/app2.py
2024-01-11 19:53:06 +01:00

80 lines
1.8 KiB
Python

import datetime
from flask import Flask, render_template, redirect, url_for, request
from flask_login import login_required, LoginManager
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.route('/login')
def login():
return render_template('auth/login.html')
@app.route('/signup')
def signup():
return render_template('auth/signup.html', errors={})
@app.route('/signup', methods=['POST'])
def signup_post():
email = request.form.get('email')
name = request.form.get('name')
password = request.form.get('password')
# Check for errors
errors = {}
if not email:
errors['email'] = 'Email is required.'
if not name:
errors['name'] = 'Name is required.'
if not password:
errors['password'] = 'Password is required.'
return render_template(
'auth/signup.html',
email=email,
name=name,
password=password,
errors=errors
)
# Save user to database. Maybe log the user in directly.
# Redirect to login page
return redirect(url_for('login'))
@app.route('/logout')
@login_required
def logout():
# Log out functionality
return redirect(url_for('index'))
# Run the application
if __name__ == '__main__':
login_manager = LoginManager()
login_manager.login_view = '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)