Files
tutor-tool/app/__init__.py
2026-02-17 02:57:44 +01:00

45 lines
1.2 KiB
Python

import os
import logging
from logging.handlers import WatchedFileHandler
from flask import Flask
from flask_socketio import SocketIO
from .models import db
from .utils import init_password_generator, init_serializer
from .auth import init_auth
from .seed_db import seed_courses
socketio = SocketIO(async_mode='eventlet', cors_allowed_origins="*")
def create_app():
# 1. Setup Log Directory
log_dir = os.path.join(os.getcwd(), 'logs')
if not os.path.exists(log_dir):
os.makedirs(log_dir)
app = Flask(__name__, static_folder='static', static_url_path='/static')
app.config.from_object('config.Config')
file_handler = WatchedFileHandler(log_dir + '/app.log', mode='a', encoding='UTF-8')
file_handler.setFormatter(logging.Formatter(
'%(asctime)s %(levelname)s [%(module)s:%(lineno)d]: %(message)s'
))
file_handler.setLevel(logging.INFO)
app.logger.addHandler(file_handler)
app.logger.setLevel(logging.INFO)
db.init_app(app)
with app.app_context():
db.create_all()
seed_courses()
init_password_generator()
init_serializer(app)
init_auth(app)
socketio.init_app(app)
from .routes import main
app.register_blueprint(main)
return app