mirror of
https://github.com/Fluffy-Bean/GameExpo23.git
synced 2025-05-28 13:53:12 +00:00
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
from flask import Flask, render_template, request, redirect, flash
|
|
from flask_login import login_required, login_user, logout_user, current_user
|
|
from flask_assets import Bundle
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import StringField
|
|
from wtforms.validators import DataRequired
|
|
from website.models import Users
|
|
from website.extensions import db, migrate, login_manager, assets
|
|
from website.config import INSTANCE_DIR, MIGRATION_DIR
|
|
|
|
|
|
class LoginForm(FlaskForm):
|
|
uuid = StringField('uuid', validators=[DataRequired()], render_kw={"placeholder": "12345678-ABCD-ABCD-ABCD-123456789EFG"})
|
|
|
|
|
|
app = Flask(__name__, instance_path=INSTANCE_DIR)
|
|
app.config.from_pyfile('config.py')
|
|
|
|
db.init_app(app)
|
|
migrate.init_app(app, db, directory=MIGRATION_DIR)
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
assets.init_app(app)
|
|
styles = Bundle('sass/styles.sass', filters='libsass, cssmin', output='gen/packed.css', depends='sass/*.sass')
|
|
assets.register('styles', styles)
|
|
scripts = Bundle('js/*.js', filters='jsmin', output='gen/packed.js')
|
|
assets.register('scripts', scripts)
|
|
|
|
|
|
@login_manager.user_loader
|
|
def load_user(user_id):
|
|
return Users.get(user_id)
|
|
|
|
|
|
@app.route('/')
|
|
def index():
|
|
return render_template('index.html')
|
|
|
|
|
|
@app.route('/login', methods=["GET", "POST"])
|
|
def login():
|
|
form = LoginForm()
|
|
|
|
if form.validate_on_submit():
|
|
if user := Users.query.filter_by(uuid=str(form.uuid)).first():
|
|
login_user(user, remember=True)
|
|
return redirect(index)
|
|
else:
|
|
flash("Inncorrect login")
|
|
|
|
return render_template('login.html', form=form)
|