Докер + Колба. Я не могу получить доступ к своим командам sqlalchemy из Python CLI для добавления / просмотра данных и т. Д. - PullRequest
0 голосов
/ 30 мая 2019

Я использую docker-compose для запуска моего приложения.Я нахожусь на этапе, когда я настроил структуры моей базы данных в своем файле app.py, и я хочу перейти к CLI Python и добавить некоторые тестовые данные.У меня проблемы, хотя.Я не могу заставить команды правильно реагировать в CLI.

При попытке разных вещей всегда возникает ошибка:

No application found. Either work inside a view function or push an application context but I'm not sure how to proceed from here.

Все результаты этой ошибки, похоже, сосредоточены на кодировании вредактор не вводит команды из CLI.

Я использую шаблон appfactory с чертежами, и мое приложение называется logrr.

Структура файла такова:

.
├── config
│  ├── __init__.py
│  └── settings.py
├── docker-compose.yml
├── Dockerfile
├── instance
│  ├── __init__.py
│  ├── settings.py
│  └── settings.py_production_example
├── logrr
│  ├── app.py
│  ├── blueprints
│  │  ├── home
│  │  │  ├── __init__.py
│  │  │  ├── templates
│  │  │  │  └── home
│  │  │  │      └── home.html
│  │  │  └── views.py
│  │  ├── __init__.py
│  │  ├── login
│  │  │  ├── __init__.py
│  │  │  ├── templates
│  │  │  │  └── login
│  │  │  │      └── login.html
│  │  │  └── views.py
│  │  ├── __pycache__
│  │  │  └── __init__.cpython-37.pyc
│  │  └── register
│  │      ├── __init__.py
│  │      ├── templates
│  │      │  └── register
│  │      │      └── register.html
│  │      └── views.py
│  ├── db
│  ├── extensions.py
│  ├── forms.py
│  ├── __init__.py
│  ├── static
│  ├── templates
│  │  ├── layouts
│  │  │  └── base.html
│  │  └── macros
│  │      ├── flash.html
│  │      └── form.html
│  └── uploads
├── README.md
└── requirements.txt

Чтобы добраться до моегоPython CLI У меня запущен мой докер-контейнер, и я ввожу так:

sudo docker exec -it a5db13d1b115 sh

Это забирает меня в мой контейнер.Затем я набираю:

python3

Я вхожу в python cli.Все идет нормально.Затем я пробую следующее:

>>> from app import db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'app'

Итак, я пытаюсь:

from logrr.app import db

, и я не получаю ошибки.ОК, это хорошо.Итак, теперь я пробую следующее:

>>> db.create_all()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 1033, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "/usr/local/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 1010, in _execute_for_all_tables
    app = self.get_app(app)
  File "/usr/local/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 982, in get_app
    'No application found. Either work inside a view function or push'
    RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/.

... и теперь я немного озадачен тем, что делать.

Я пробовал варианты за последний час и сделалдовольно исследование ошибки No application found. Either work inside a view function or push an application context, но я не уверен, что делать дальше.

Все результаты этой ошибки, похоже, сосредоточены на кодировании в редакторе, а не на вводе команд из интерфейса командной строки.

Может кто-нибудь дать совет?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...