__init__.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from flask import Flask
  2. from flask_sqlalchemy import SQLAlchemy
  3. from flask_login import LoginManager # Flask Login
  4. from os import path
  5. db = SQLAlchemy()
  6. DB_NAME = "database.db"
  7. def create_app():
  8. app = Flask(__name__)
  9. app.config['SECRET_KEY'] = 'Th15_iS-M1!S3cre4' # used to encrypt session cookies
  10. app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{DB_NAME}'
  11. db.init_app(app)
  12. # import blueprints
  13. from .logic import logic
  14. # register blueprints
  15. app.register_blueprint(logic, url_prefix = '/') # allows the setting of prefixes for pages
  16. # import Database models
  17. from .models import User, Bookmark, Groups
  18. create_database(app)
  19. login_manager = LoginManager()
  20. # redirect here if not logged in
  21. login_manager.login_view = 'logic.login' ##'logic.login'
  22. login_manager.init_app(app)
  23. @login_manager.user_loader
  24. # tells flask how to load a user from the db
  25. def load_user(id):
  26. return User.query.get(int(id)) # by default get() looks for the primary key
  27. return app
  28. def create_database(app):
  29. if not path.exists('app/' + DB_NAME):
  30. db.create_all(app=app)
  31. print('Created Database!')