Python - dotenv 심기

marco x brown·2020년 2월 23일
7

Telegram 봇에 메시지를 보내고 위치도 전송해봤다. 그 과정에서 Telegram 토큰을 변수에 담아서 사용했는데 코드 상에서 노출되었기 때문에 보안상 굉장히 좋지 않다.

python-dotenv 설치

(venv) $ pip install python-dotenv

https://pypi.org/project/python-dotenv/
https://saurabh-kumar.com/python-dotenv/reference/dotenv/

설치가 끝나면 .env 파일을 작성해준다. 문자열이더라도 따옴표는 안 붙여도 된다. 파일 경로는 아무데나 저장해도 상관없는데 보통 프로젝트 루트 디렉토리에 저장한다.

.env 심기

# .env

TELEGRAM_TOKEN=1038******:AAHQ*******************
WEATHER_API_KEY=00d69********************989
# telegram_bot.py

import os
import telegram
from dotenv import load_dotenv

load_dotenv(verbose=True)

TELEGRAM_TOKEN = os.getenv('TELEGRAM_TOKEN')

bot = telegram.Bot(token=TELEGRAM_TOKEN)

load_dotenv() 메소드는 아래와 같이 정의되어 있다.

def load_dotenv(
    dotenv_path=None,
    stream=None,
    verbose=False,
    override=False,
    **kwargs
)
  • dotenv_path: .env 파일의 절대경로 및 상대경로
  • stream: .env 파일 내용에 대한 StringIO 객체
  • verbose: .env 파일 누락 등의 경고 메시지를 출력할 것인지에 대한 옵션
  • override: 시스템 환경변수를 .env 파일에 정의한 환경변수가 덮어쓸지에 대한 옵션
profile
개발자로 크는 중

0개의 댓글