Как использовать файл .env в FastAPI

26 set 2023 2 min di lettura
Как использовать файл .env в FastAPI
Indice dei contenuti

Введение

FastAPI — это современная веб-инфраструктура для создания API с помощью Python 3.7+ на основе стандартных предложений типов Python. Как и во многих других платформах, в FastAPI предусмотрены средства для работы с переменными среды для управления конфигурацией. Хранение конфигураций в файле.env — распространенная практика, которая помогает отделить конфигурацию от кода приложения, упрощая управление и повышая безопасность.

В этой статье мы рассмотрим, как интегрировать и использовать файлы.env в приложении FastAPI.

Зачем использовать файл.env?

  • Разделение аспектов: храните конфигурации отдельно от кода приложения.
  • Безопасность: избегайте жесткого кодирования конфиденциальной информации в исходный код.
  • Портативность: легко переключаться между различными конфигурациями в зависимости от вашей среды (разработка, тестирование, производство и т. д.).

Начало работы с.env в FastAPI

Подобно другим платформам Python, FastAPI также использует пакет python-dotenv для загрузки файлов `.env` в системную среду. Затем используйте их в своем приложении.

Установите необходимые пакеты:

Для работы с файлами `.env` мы будем использовать библиотеку python-dotenv. Установите его с помощью pip:

pip install fastapi[all] python-dotenv uvicorn

Создайте файл.env:

Создайте файл `.env` в корне вашего проекта. Например:

DB_URL=postgresql://username:password@localhost:5432/mydatabase
 SECRET_KEY=mysecretkey
 DEBUG=True

Прочтите.env в FastAPI:

Вы можете загрузить файл `.env` в начале приложения. См. приведенный ниже скрипт Python, который использует функцию load_dotenv из пакета dotenv для загрузки переменных из файла .env в системную среду. После загрузки файла.env код извлекает определенные переменные среды, такие как «DB_URL», «SECRET_KEY» и «DEBUG», с помощью функции os.getenv.

from fastapi import FastAPI
 import os
 from dotenv import load_dotenv

 app = FastAPI()

 # Load.env file
 load_dotenv()

 DB_URL = os.getenv("DB_URL")
 SECRET_KEY = os.getenv("SECRET_KEY")
 DEBUG = os.getenv("DEBUG") == "True"

Используйте загруженные переменные среды:

Теперь, когда переменные загружены, вы можете использовать их в своем приложении.

@app.get("/")
 def read_root():
 return {"DB_URL": DB_URL, "Debug Mode": DEBUG}

Расширенное использование

Использование сред с конфигурацией FastAPI:

Для дальнейшей организации и контроля типов наших конфигураций мы можем использовать такой пакет, как pydantic:

pip install pydantic

Далее определите шаблон конфигурации:

from pydantic import BaseSettings

 class Settings(BaseSettings):
 DB_URL: str
 SECRET_KEY: str
 DEBUG: bool = False

 class Config:
 env_file = ".env"

Загрузить конфигурации:

settings = Settings()

 @app.get("/config/")
 def read_config():
 return {"DB_URL": settings.DB_URL, "Debug Mode": settings.DEBUG}

С помощью pydantic переменные среды автоматически преобразуются в правильные типы, что делает управление конфигурацией более безопасным.

Переопределить конфигурации для тестирования

При написании тестов вы можете захотеть использовать разные конфигурации. Библиотека python-dotenv позволяет вам указать путь к вашему файлу.env, поэтому вы можете использовать отдельный файл `.env.test` для проверки:

# For testing, load a different.env file
 load_dotenv(".env.test")

Заключение

Использование файла .env в приложении FastAPI упрощает управление конфигурацией, повышает безопасность и разделение задач. С помощью дополнительных инструментов, таких как pydantic, вы можете применять проверку типов в конфигурациях, чтобы заранее обнаружить потенциальные проблемы. Независимо от того, занимаетесь ли вы локальной разработкой, развертыванием в рабочей среде или запуском тестов, использование файлов.env упрощает управление настройками, специфичными для среды.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.