♻️ Телеграм боти. Використання консольних аргументів.
Іноді зручно мати кілька .env-файлів із різними налаштуваннями та мати змогу запускати проєкт, указуючи, з яким файлом його запускати. Ми можемо мати, наприклад, два файли — .env.dev та .env.prod, тобто два профілі налаштувань: для розробки та для роботи на сервері.
import argparse
async def main():
parser = argparse.ArgumentParser()
parser.add_argument(
"--env-file",
type=str,
default=None,
help="Path to the dotenv-file",
)
args = parser.parse_args()
settings = Settings(
_env_file=args.env_file,
_env_nested_delimiter='__',
)
async with Bot(token=settings.bot.token.get_secret_value()) as bot:
storage = MemoryStorage()
dp = Dispatcher(storage=storage)
dp["settings"] = settings
dp.startup.register(startup)
dp.include_router(router)
await dp.start_polling(bot)
Ми можемо запукати проєкт вказуючи шлях/ім'я до файлу опцією --env-file
python main.py --env-file .env.dev
Або
python main.py --env-file .env.prod
Якщо запускати без зазначення опції — значення братимуться лише з системного оточення; якщо їх немає, виникне помилка валідації.
#tg_bots
🔥1👍1
1 · 487 ·