Я хочу структурировать приложение Flask примерно так:
./site.py
./apps/members/__init__.py
./apps/members/models.py
apps.members
- это проект фляжки.
Теперь, чтобы создать классы моделей, мне нужно удержать приложение, например:
# apps.members.models
from flask import current_app
from flaskext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(current_app)
class Member(db.Model):
# fields here
pass
Но если я попытаюсь импортировать эту модель в мое приложение Blueprint, я получаю страшный RuntimeError: working outside of request context
. Как я могу правильно ухватить свое приложение? Относительный импорт может работать, но они довольно уродливы и имеют свои собственные контекстные проблемы, например:
from ...site import app
# ValueError: Attempted relative import beyond toplevel package