Files
acht-damen-tuerme-problem/app/__init__.py
T

45 lines
1.2 KiB
Python

import os
from flask import Flask
from flask_login import LoginManager
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
login_manager = LoginManager()
def create_app():
app = Flask(__name__)
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + os.path.join(BASE_DIR, "app.db")
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY", "dev-secret-key")
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
app.config["SESSION_COOKIE_HTTPONLY"] = True
app.config["REMEMBER_COOKIE_HTTPONLY"] = True
app.config["SESSION_COOKIE_SAMESITE"] = "Lax"
db.init_app(app)
login_manager.init_app(app)
login_manager.login_view = "login.login"
login_manager.login_message_category = "info"
from .models.user import User
from .models.gamestate import GameState
from .models.login_attempt import LoginAttempt
with app.app_context():
db.create_all()
@login_manager.user_loader
def load_user(user_id):
return db.session.get(User, int(user_id))
from .routes.login_routes import login_bp
from .routes.main_routes import main_bp
app.register_blueprint(login_bp)
app.register_blueprint(main_bp)
return app