47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from flask import Flask, send_from_directory, url_for
|
|
from flask_login import LoginManager
|
|
from models import db
|
|
from models import User
|
|
from auth import auth_bp
|
|
from admin import admin_bp
|
|
from lists import lists_bp
|
|
from items import items_bp
|
|
from api import api_bp
|
|
from groups import groups_bp
|
|
from secrets_config import load_secrets
|
|
|
|
login_manager = LoginManager()
|
|
|
|
def create_app():
|
|
app = Flask(__name__, instance_relative_config=True)
|
|
secret_values = load_secrets(app.instance_path)
|
|
app.config["SECRET_KEY"] = secret_values["runtime"]["secret_key"]
|
|
app.config["APPLICATION_KEY"] = secret_values["runtime"]["application_key"]
|
|
app.config["SQLALCHEMY_DATABASE_URI"] = secret_values["runtime"]["database_uri"]
|
|
|
|
db.init_app(app)
|
|
login_manager.init_app(app)
|
|
login_manager.login_view = "auth.login"
|
|
|
|
app.register_blueprint(auth_bp)
|
|
app.register_blueprint(admin_bp)
|
|
app.register_blueprint(lists_bp)
|
|
app.register_blueprint(items_bp)
|
|
app.register_blueprint(api_bp)
|
|
app.register_blueprint(groups_bp)
|
|
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
@login_manager.user_loader
|
|
def load_user(user_id):
|
|
# Return User.query.get(int(user_id))
|
|
return db.get_or_404(User, int(user_id))
|
|
|
|
return app
|
|
|
|
if __name__ == "__main__":
|
|
my_app = create_app()
|
|
# if needed - initialize data
|
|
my_app.run(debug=True, host='127.0.0.1', port=5001)
|