728x90
728x90
환경 변수 파일(.env) 다루는 방법
들어가며
- 파이썬(Python)에서 @.env@ 파일을 다루는 방법을 정리해본다.
.env 파일
개념
- 키(Key)-값(Value) 쌍으로 환경 변수를 정의하는 간단한 텍스트 파일
- 이 파일을 사용하면 코드 내에 민감한 정보를 직접 작성하지 않고도 환경 변수(Environment Variable)를 쉽게 관리할 수 있다.
- @.env@ 파일을 사용하면 환경 변수를 효율적으로 관리할 수 있으며, 코드의 보안성과 유지보수성을 향상시킬 수 있다.
API_KEY=your_api_key_here
DATABASE_URL=postgres://user:password@localhost:5432/mydatabase
DEBUG=True
방법
패키지 설치하기
- @python-dotenv@ 패키지가 설치되어 있지 않을 경우 설치해준다.
$ pip install python-dotenv
프로젝트 루트 디렉터리에 @.env@ 파일 생성하기
- 프로젝트 루트 디렉토리에 @.env@ 파일을 생성한다.
- 그리고 필요한 환경 변수를 정의한다.
SECRET_KEY=supersecretkey123
DATABASE_URL=postgres://user:password@localhost:5432/mydatabase
DEBUG=True
파이썬 코드에서 @.env@ 파일 불러오기
- @python-dotenv@를 사용하여 @.env@ 파일의 환경 변수를 불러올 수 있다.
- 일반적으로 애플리케이션의 진입점에서 불러온다.
main.py
- @load_dotenv()@를 우선 실행한 후, @os.getenv()@를 통해 @.env@ 파일의 키 값에 접근할 수 있다.
import os
from dotenv import load_dotenv
# .env 파일 불러오기
load_dotenv()
# 환경 변수 접근하기
secret_key = os.getenv('SECRET_KEY')
database_url = os.getenv('DATABASE_URL')
debug_mode = os.getenv('DEBUG')
print(f"Secret Key: {secret_key}")
print(f"Database URL: {database_url}")
print(f"Debug Mode: {debug_mode}")
환경 변수 접근 방법
- 다양한 방법으로 @.env@ 파일의 환경 변수에 접근할 수 있다.
@os.getenv()@ 사용하기
import os
api_key = os.getenv('API_KEY')
@os.environ()@ 사용하기
import os
api_key = os.environ['API_KEY'] # 키가 없으면 KeyError 발생
타입 변환
- 환경 변수는 기본적으로 문자열(String)로 불러와지므로, 필요에 따라 타입을 변환해야 한다.
debug_mode = os.getenv('DEBUG') == 'True' # String 형 -> Boolean 형
보안 고려하기
- @.gitignore 파일@에 @.env@를 추가하여 소스 코드 관리 시스템에 포함되지 않도록 한다.
.gitignore
# ...
.env
# ...
728x90
728x90
'Programming > Python' 카테고리의 다른 글
[Python] Pyinstaller로 패키징할 때 환경 변수 파일(.env) 인식 안되는 문제 해결 방법 (0) | 2024.10.30 |
---|---|
[Python] try-except 문 사용할 때 에러 발생 시, 전체 에러 정보 표시 방법 (2) | 2024.09.07 |
[Python] 데이터 전처리 할 때 결측값 제거 방법 (1) | 2024.06.21 |
[Python] or 연산자와 | 연산자의 차이 (0) | 2024.05.29 |
[Python] self (0) | 2023.11.29 |
[Python] ORM(Object Relational Mapping) 라이브러리 사용해보기 (SQLAlchemy) (0) | 2023.11.14 |
[Python] HTML 코드를 이미지로 변환하는 방법 (Html2Image) (0) | 2023.11.06 |
[Python] 파이썬을 이용하여 텔레그램(Telegram) 메시지 보내는 방법 (0) | 2023.11.06 |