|
@ -4,25 +4,49 @@ import tomllib |
|
|
|
|
|
|
|
|
import flask_apscheduler |
|
|
import flask_apscheduler |
|
|
from flask import Flask |
|
|
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, |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
from whoosh.fields import * |
|
|
from whoosh.fields import * |
|
|
from whoosh.index import create_in |
|
|
from whoosh.index import create_in |
|
|
from whoosh.qparser import QueryParser |
|
|
from whoosh.qparser import QueryParser |
|
|
|
|
|
|
|
|
from application.csvparser import CsvParser |
|
|
from application.csvparser import CsvParser |
|
|
|
|
|
|
|
|
|
|
|
db = SQLAlchemy() |
|
|
|
|
|
migrate = Migrate() |
|
|
|
|
|
bcrypt = Bcrypt() |
|
|
|
|
|
login_manager = LoginManager() |
|
|
|
|
|
|
|
|
SCRIPT_DIR = os.path.dirname(__file__) |
|
|
SCRIPT_DIR = os.path.dirname(__file__) |
|
|
DATA_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "data")) |
|
|
DATA_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "data")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_app(): |
|
|
def create_app(): |
|
|
settings = settings_from_file() |
|
|
settings = settings_from_file() |
|
|
|
|
|
|
|
|
APP = Flask(__name__, static_folder="static") |
|
|
APP = Flask(__name__, static_folder="static") |
|
|
APP.config["SECRET_KEY"] = "ty4425hk54a21eee5719b9s9df7sdfklx" |
|
|
APP.config["SECRET_KEY"] = os.urandom(24) |
|
|
APP.config["UPLOAD_FOLDER"] = "tmpupload" |
|
|
APP.config["UPLOAD_FOLDER"] = "tmpupload" |
|
|
APP.config["LIBRARY_FILENAME"] = settings["libaryfilename"] |
|
|
|
|
|
APP.config["IMAGE_FOLDER"] = "static/images" |
|
|
APP.config["IMAGE_FOLDER"] = "static/images" |
|
|
|
|
|
|
|
|
|
|
|
APP.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///libraryusers.db" |
|
|
|
|
|
APP.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True |
|
|
|
|
|
|
|
|
|
|
|
APP.config["LIBRARY_FILENAME"] = settings["libaryfilename"] |
|
|
APP.config["TITLE"] = settings["title"] |
|
|
APP.config["TITLE"] = settings["title"] |
|
|
|
|
|
|
|
|
|
|
|
csrf = CSRFProtect(APP) |
|
|
|
|
|
csrf.init_app(APP) |
|
|
|
|
|
login_manager.init_app(APP) |
|
|
|
|
|
db.init_app(APP) |
|
|
|
|
|
migrate.init_app(APP, db, render_as_batch=True) |
|
|
|
|
|
bcrypt.init_app(APP) |
|
|
|
|
|
|
|
|
scheduler = flask_apscheduler.APScheduler() |
|
|
scheduler = flask_apscheduler.APScheduler() |
|
|
scheduler.api_enabled = False |
|
|
scheduler.api_enabled = False |
|
|
scheduler.init_app(APP) |
|
|
scheduler.init_app(APP) |
|
|