Я использую 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
, но я не уверен, что делать дальше.
Все результаты этой ошибки, похоже, сосредоточены на кодировании в редакторе, а не на вводе команд из интерфейса командной строки.
Может кто-нибудь дать совет?Спасибо