import os from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_bcrypt import Bcrypt from flask_migrate import Migrate from flask_wtf.csrf import CSRFProtect from flask_login import ( LoginManager, ) db = SQLAlchemy() migrate = Migrate() bcrypt = Bcrypt() login_manager = LoginManager() def create_app(): APP = Flask(__name__, static_folder="static") APP.secret_key = "secret-key" APP.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///data/distribusiverse.db" APP.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True APP.config["MAX_CONTENT_LENGTH"] = 150 * 1024 * 1024 APP.config["MAIL_SERVER"] = "0.0.0.0" APP.config["MAIL_PORT"] = 1025 APP.config["MAIL_USE_SSL"] = False APP.config["MAIL_USE_TLS"] = True # APP.config['MAIL_USERNAME'] = 'username' # APP.config['MAIL_PASSWORD'] = 'password' login_manager.session_protection = "strong" login_manager.login_view = "index" login_manager.login_message_category = "info" csrf = CSRFProtect() APP.config["SECRET_KEY"] = os.urandom(24) APP.config["UPLOAD_FOLDER"] = "tmpupload" csrf.init_app(APP) login_manager.init_app(APP) db.init_app(APP) migrate.init_app(APP, db) bcrypt.init_app(APP) return APP