6
0

__init__.py 874 B

123456789101112131415161718192021222324252627282930313233
  1. import json
  2. import os
  3. from pathlib import Path
  4. from munch import munchify
  5. from flask import Flask
  6. from flask_migrate import Migrate
  7. from flask_sqlalchemy import SQLAlchemy
  8. from sqlalchemy import event
  9. from sqlalchemy.engine import Engine
  10. print('- Loading settings')
  11. with open('settings.json') as file:
  12. settings = munchify(json.load(file))
  13. # create projects folder
  14. if not os.path.exists(settings.projects_folder):
  15. os.mkdir(settings.projects_folder)
  16. app = Flask(__name__)
  17. app.config["SQLALCHEMY_DATABASE_URI"] = f"sqlite:///{Path.cwd() / settings.database}"
  18. app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
  19. @event.listens_for(Engine, "connect")
  20. def set_sqlite_pragma(dbapi_connection, connection_record):
  21. cursor = dbapi_connection.cursor()
  22. cursor.execute("PRAGMA foreign_keys=ON")
  23. cursor.close()
  24. db = SQLAlchemy(app)
  25. migrate = Migrate(app, db)