Я вижу много вещей, таких как файлы .env, .config и wsgi.py, упомянутые
Скорее всего, это просто разные способы загрузки конфигураций в приложение.
Например, с файлом .env
вы можете объявить некоторые переменные в форме:
#.env
MODEL_FILE=some/path/to/a.h5
Затем загрузить это с чем-то вроде python -dotenv , что в конечном итоге позволит вы должны сделать следующее в своем приложении:
model_to_use = os.getenv('MODEL_FILE', 'default.h5')
then_do_someting_with(model_to_use)
Это удерживает жестко закодированные (возможно, секретные переменные) из вашего кода, избегая их передачи в систему управления версиями. Поэтому, когда вы развертываете приложение на другом сервере или системе, вы можете создать новый файл .env
, который вместо этого содержит:
MODEL_FILE=some/production_ready/file.h5
Теперь ту же копию кода можно развернуть с другими функциями.
Выделенный config.py
может использоваться, если вы хотите сохранить всю вышеупомянутую загрузку конфигурации вместе, тогда в вашем app.py
просто сделайте что-то вроде:
from config import MODEL_FILE
# ...
do_something_with(MODEL_FILE)
* 1028 Иногда можно увидеть выделенные файлы
wsgi.py
, чтобы сервер WSGI мог загрузить модуль
wsgi:app
. Этот файл может содержать конфигурацию, которая указана c для развертывания WSGI (например, применение
ProxyFix
промежуточного программного обеспечения к приложению).
Конечно, это всего лишь один из способов применения этой конфигурации к приложению. Вы также можете передать PROXYFIX_ON
env var в коде, а затем ввести лог c в код, чтобы активировать фактическую функциональность в зависимости от ее наличия.
Последнее означает, что функциональность отключена или включена изменение этого env var. Первое означает, что функциональность отключена или включена в зависимости от модуля, используемого для запуска сервера.
Это действительно зависит от вас, как вы создадите эту часть приложения. Однако загрузка конфигурации из переменных среды довольно распространена. Конечно, неплохо иметь представление о том, как выбранный вами метод развертывания решает эту проблему. Например: