80 lines
1.8 KiB
Python
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)
|