Fast API 에서 .env 파일로 환경변수 관리하기 (python-dotenv)
2021. 10. 29. 17:45ㆍDev
OS가 아닌 FastAPI 프로젝트 폴더단위로 환경변수를 관리하여, FastAPI 서버를 실행시켜 그 환경변수들만 로드하는 것에 대한 방법에 대해 설명한다. FastAPI에 대한 기초적인 지식은 있다고 가정하고 설명한다.
일단 간단한 프로젝트를 하나 만들어보자.
test-fastapi /
- main.py
- .env
Code
0. 필요한 패키지를 설치해준다. 이 글에서 필요한 패키지는 python-dotenv 이다.
# 요놈들은 FastAPI 구동을 위한 기본 패키지이고,
pip install uvicorn
pip install fastapi
# 우리가 설치해야 할 애는 이놈이다.
pip install python-dotenv
1. main.py: 실제로 FastAPI를 동작시킬 코드이다. 최대한 간단하게 만들어보았다.
import uvicorn
import os
from fastapi import FastAPI
from dotenv import load_dotenv
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
load_dotenv(os.path.join(BASE_DIR, ".env"))
def create_app() -> FastAPI:
app = FastAPI()
return app
app = create_app()
@app.get("/")
def read_root():
test_env = os.environ["TEST_ENV"]
return {"result": test_env}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0")
'/' 경로로 호출하면 TEST_ENV 라는 이름의 환경변수를 읽어서 출력해주는 간단한 API를 짜봤다.
2. .env: 환경변수를 적어줄 파일이다. (파일명 앞에 '.' 이 붙어있다는 것에 주의)
TEST_ENV=dogcat
Test
uvicorn 을 통해서 FastAPI 서버를 구동해보자. 각자 옵션주는 방법이 다를 수 있는데 나는 아래와 같이 줬다. 각자의 취향대로 FastAPI 서버를 띄워주면 된다.
uvicorn main:app --reload --host 0.0.0.0
실행결과 .env 파일에서 TEST_ENV에 담은 변수인 dogcat 이 잘 나오는 것을 확인할 수 있다.
'Dev' 카테고리의 다른 글
MySQL 이중화 하기(HA) 1편: Keepalived 설치하기 (1) | 2021.12.20 |
---|---|
CKA 시험후기 (Certified Kubernetes Administrator) (0) | 2021.10.31 |
Fast API 는 더 깔끔한 API UI도 제공합니다 ( ReDoc ) (0) | 2021.10.29 |
Fast API를 HTTPS로 띄워보자 (Fast API + Traefik + Webserver) (0) | 2021.08.30 |
Fast API 에서 CORS 에러 해결하기 (0) | 2021.08.30 |