__init__.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 .accounts import accounts
  14. from .dashboards import dashboards
  15. # register blueprints
  16. app.register_blueprint(accounts, url_prefix = '/') # allows the setting of prefixes for pages
  17. app.register_blueprint(dashboards, url_prefix = '/')
  18. # import Database models
  19. from .models import User
  20. create_database(app)
  21. login_manager = LoginManager()
  22. # redirect here if not logged in
  23. login_manager.login_view = 'accounts.login'
  24. login_manager.init_app(app)
  25. @login_manager.user_loader
  26. # tells flask how to load a user from the db
  27. def load_user(id):
  28. return User.query.get(int(id)) # by default get() looks for the primary key
  29. return app
  30. def create_database(app):
  31. if not path.exists('app/' + DB_NAME):
  32. db.create_all(app=app)
  33. print('Created Database!')