Web service voor het LED-display
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.1 KiB

11 years ago
# -*- coding: utf-8 -*-
"""Public section, including homepage and signup."""
from flask import Blueprint, current_app, flash, redirect, render_template, request, url_for
from flask_login import login_required, login_user, logout_user
11 years ago
from {{cookiecutter.app_name}}.extensions import login_manager
from {{cookiecutter.app_name}}.public.forms import LoginForm
from {{cookiecutter.app_name}}.user.forms import RegisterForm
from {{cookiecutter.app_name}}.user.models import User
from {{cookiecutter.app_name}}.utils import flash_errors
blueprint = Blueprint('public', __name__, static_folder='../static')
11 years ago
@login_manager.user_loader
def load_user(user_id):
"""Load user by ID."""
return User.get_by_id(int(user_id))
11 years ago
@blueprint.route('/', methods=['GET', 'POST'])
11 years ago
def home():
"""Home page."""
11 years ago
form = LoginForm(request.form)
current_app.logger.info('Hello from the home page!')
# Handle logging in
11 years ago
if request.method == 'POST':
if form.validate_on_submit():
login_user(form.user)
flash('You are logged in.', 'success')
redirect_url = request.args.get('next') or url_for('user.members')
return redirect(redirect_url)
else:
flash_errors(form)
return render_template('public/home.html', form=form)
11 years ago
@blueprint.route('/logout/')
@login_required
11 years ago
def logout():
"""Logout."""
logout_user()
11 years ago
flash('You are logged out.', 'info')
return redirect(url_for('public.home'))
11 years ago
@blueprint.route('/register/', methods=['GET', 'POST'])
11 years ago
def register():
"""Register new user."""
form = RegisterForm(request.form)
11 years ago
if form.validate_on_submit():
User.create(username=form.username.data, email=form.email.data, password=form.password.data, active=True)
flash('Thank you for registering. You can now log in.', 'success')
return redirect(url_for('public.home'))
11 years ago
else:
flash_errors(form)
return render_template('public/register.html', form=form)
11 years ago
@blueprint.route('/about/')
11 years ago
def about():
"""About page."""
11 years ago
form = LoginForm(request.form)
return render_template('public/about.html', form=form)