Flask-Dance: нет модуля с именем 'flask_dance.consumer.backend' - PullRequest
0 голосов
/ 25 мая 2019

Это мой самый первый вопрос, пожалуйста, не ешьте меня! Я совершенно новичок, я пытаюсь написать приложение для фляги, используя танец с флягой по причине OAuth. Кажется, я делаю что-то глупое, потому что когда я пытаюсь import SQLAlchemyBackend class from flask_dance.consumer.backend.sqla Python возвращает

ModuleNotFoundError: нет модуля с именем 'flask_dance.consumer.backend'

Подскажите, пожалуйста, что именно я делаю не так?

Я использую версию flask-dance [sqla] для базы данных SQLAlchemy. Сначала я установил базовую версию без поддержки SQLAlchemy, затем я удалил ее и установил текущую (все внутри venv). Возможно ли, что это повлияло на функциональность F-D и его собственные схемы модулей и субмодулей?

Я понятия не имею, как решить эту проблему и куда идти. Google не помогает ни.

Что я вижу в трекбэке:

Traceback (most recent call last):   File "c:\users\igor\envs\2do2\lib\site-packages\flask\cli.py", line 235, in locate_app
    __import__(module_name)   File "C:\Users\igor\projects\gp\2do2\app\app.py", line 8, in <module>
    from flask_dance.consumer.backend.sqla import SQLAlchemyBackend ModuleNotFoundError: No module named 'flask_dance.consumer.backend'

1 Ответ

1 голос
/ 25 мая 2019

В Flask-Dance 1.4.0 , «бэкэнды» были переименованы в «хранилища», поскольку слово «бэкэнд» означает нечто иное в контексте веб-разработки. Это изменение было обратно совместимым в 1.4.0, но функции обратной совместимости были отброшены в Flask-Dance 2.0.0 .

Чтобы сделать это в Flask 2.0 и выше, просто заменяйте слово «backend» словом «storage» везде, где вы его видите. Например, эта строка кода:

from flask_dance.consumer.backend.sqla import SQLAlchemyBackend

становится таким вместо:

from flask_dance.consumer.storage.sqla import SQLAlchemyStorage

Если вы видите какие-либо ссылки на "backends" в текущей документации , пожалуйста, дайте мне знать! Теперь все они должны быть «хранилищами».

...