Способ передачи аргументов приложению FastAPI через командную строкуPython

Программы на Python
Ответить
Anonymous
 Способ передачи аргументов приложению FastAPI через командную строку

Сообщение Anonymous »

Я использую Python 3.8.0 для своего приложения FastAPI.
Он использует файл .env, расположенный в корне каталога проекта. Я использую пакет dotenv, и расположение файла .env жестко запрограммировано в приложении. Вот мой файл устройства
[Unit]
Description=Gunicorn instance for my_app
After=network.target

[Service]
User=nginx
Group=nginx
WorkingDirectory=/usr/share/nginx/html/my_app/
Environment="PATH=/usr/share/nginx/html/my_app/venv/bin"
ExecStart=/usr/share/nginx/html/my_app/venv/bin/gunicorn --bind unix:/usr/share/nginx/html/my_app/my_app.sock -w 4 -k uvicorn.workers.UvicornWorker app.main:app

[Install]
WantedBy=multi-user.target


Задача состоит в том, чтобы запустить две версии (рабочую и тестовую) одного и того же приложения, используя два разных .env на двух разных портах. Мне придется создать второй файл модуля. Но как я могу передать в приложение имена двух разных имен файлов env для дальнейшего использования. Эти файлы содержат подключения к базе данных и т. д.
Я представляю это примерно так
1-й файл модуля
ExecStart=/usr/share/nginx/html/my_app/venv/bin/gunicorn
--bind unix:/usr/share/nginx/html/my_app/my_app.sock -w 4 -k uvicorn.workers.UvicornWorker app.main:app --env_file_name=".env.prod"

Файл второго модуля
ExecStart=/usr/share/nginx/html/my_app/venv/bin/gunicorn
--bind unix:/usr/share/nginx/html/my_app/my_app.sock -w 4 -k uvicorn.workers.UvicornWorker app.main:app --env_file_name=".env.dev"


Подробнее здесь: https://stackoverflow.com/questions/698 ... mmand-line
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»