я собираюсь хранить в файле app/templates/Login.html
Заменить символ L в верхнем регистре на нижний регистр, иначе кто-то скопирует и будет мучиться, почему не работает. Возможно для Windows это будет работать, но в nix* подобных системах — нет.
В том-то и дело, что в этих строчках нужно напрягаться и вспоминать, так как здесь не явно, что действительно Python умеет и может импортировать:
app = Flask(__name__)
from app import routes
На слух это так: из экземпляра app импортровать routes. Если бы пакет (текущий каталог) был бы назван, например как myapp, то у меня бы вопроса не возникло:
app = Flask(__name__)
from myapp import routes
А одна точка (.) — это явное указание, также как и в файловой системе, что импортировать нужно из текущего каталога где этот модуль расположен.
Что-то вот не перезапускается сервер, если изменять файл шаблона по пути ./app/templates/index.html. Ни export FLASK_DEBUG=1, ни если передать параметр flask run --reload, ни если в ./app/__init__.py прописать app.debug = True не помогают, а изменения в ./app/routes.py, например, отслеживает...
Хочу выразить большую благодарность за труд!
Также, хочу отметить, что в файле app/__init__.py, в инструкции импорта, лучше вписать точку, вместо явного определения имени текущего каталога (пакета Python), это не будет вызывать взрыв мозга, что откуда берется и будет ясность. Также, если пакет переименуется, то ничего из этого не сломается. т.е, это:
from flask import Flask
app = Flask(__name__)
from app import routes
лучше заменить на это:
from flask import Flask
app = Flask(__name__)
from . import routes
«функции просмотра» — Мне кажется это неудачный перевод, режет слух и ломает мозг.
Устоявшийся термин для «view», во многих документациях, является как «представление», а не «просмотр», тогда понятна относительность, что функция представляет (отображает, проецирует, показывает), а не просматривает что-то там самостоятельно или с помощью кого-то или чего-то… )))
Нашлось простое решение :) Как оказалось, в расширении Python к VS Code есть опция, которой можно указать список внешних модулей/библиотек Python которые импортируются в auto complete engine. Достаточно указать путь в WORKSPACE SETTING (файл .vscode/settings.json) к библиотекам в контейнере, например так (это один из из путей который ищет python, вы можете расширить этот список):
// List of paths to libraries and the like that need to be imported by auto complete engine. E.g. when using Google App SDK, the paths are not in system path, hence need to be added into this list.
"python.autoComplete.extraPaths": ["/var/lib/lxd/storage-pools/lxdpool/containers/pytest/rootfs/usr/local/lib/python3.6/dist-packages/"],
По адресу /var/lib/lxd/storage-pools/lxdpool/containers/pytest/rootfs/ находится корневая система контейнера, относительно ее вы можете найти установленные библиотеки и указать полный путь в параметре «python.autoComplete.extraPaths».
Вот пример, автодополнение работает для numpy, который установлен только в контейнере:
Если сразу не заработало, попробуйте перезагрузить VS Code, а также удалить любые символы после from… import и вызвать сразу CTRL + SPACE. Иногда не сразу срабатывает, где-то кешируется.
Просмотр переменных/объектов наведением указателя мыши в коде в режиме дебага работает. Или чтобы по нажатию исходник модуля открывался в редакторе? Модули в проекте и локально установленные откроются через CTRL + Клик мыши на названии модуля, а вот удаленные, установленные только в контейнере, посмотреть не удается.
Ошибки. Просьба поправить в тексте:
Заменить символ L в верхнем регистре на нижний регистр, иначе кто-то скопирует и будет мучиться, почему не работает. Возможно для Windows это будет работать, но в nix* подобных системах — нет.
Вполне может быть так лучше, как Вас учили.
В том-то и дело, что в этих строчках нужно напрягаться и вспоминать, так как здесь не явно, что действительно Python умеет и может импортировать:
На слух это так: из экземпляра app импортровать routes. Если бы пакет (текущий каталог) был бы назван, например как myapp, то у меня бы вопроса не возникло:
А одна точка (.) — это явное указание, также как и в файловой системе, что импортировать нужно из текущего каталога где этот модуль расположен.
Что-то вот не перезапускается сервер, если изменять файл шаблона по пути
./app/templates/index.html. Ниexport FLASK_DEBUG=1, ни если передать параметрflask run --reload, ни если в./app/__init__.pyпрописатьapp.debug = Trueне помогают, а изменения в./app/routes.py, например, отслеживает...Также, хочу отметить, что в файле app/__init__.py, в инструкции импорта, лучше вписать точку, вместо явного определения имени текущего каталога (пакета Python), это не будет вызывать взрыв мозга, что откуда берется и будет ясность. Также, если пакет переименуется, то ничего из этого не сломается. т.е, это:
лучше заменить на это:
Необходимо поправить в нескольких местах, иначе сейчас другой совсем смысл. Предлагаю изменить на:
Устоявшийся термин для «view», во многих документациях, является как «представление», а не «просмотр», тогда понятна относительность, что функция представляет (отображает, проецирует, показывает), а не просматривает что-то там самостоятельно или с помощью кого-то или чего-то… )))
По адресу /var/lib/lxd/storage-pools/lxdpool/containers/pytest/rootfs/ находится корневая система контейнера, относительно ее вы можете найти установленные библиотеки и указать полный путь в параметре «python.autoComplete.extraPaths».
Вот пример, автодополнение работает для numpy, который установлен только в контейнере:
Если сразу не заработало, попробуйте перезагрузить VS Code, а также удалить любые символы после from… import и вызвать сразу CTRL + SPACE. Иногда не сразу срабатывает, где-то кешируется.