python-dotenv의 용도는 무엇입니까?
예시가 필요하고 python-dotenv의 목적을 설명해주세요.
저는 그 서류가 좀 헷갈립니다.
Github 페이지에서:
.env에서 키, 값 쌍을 읽고 환경 변수에 추가합니다.12가지 요소 원칙을 사용하여 개발 및 생산 중에 앱 설정을 관리하는 데 유용합니다.
사용자가 다음을 만들었다고 가정합니다..env
파일을 설정 모듈과 함께 사용할 수 있습니다.
.
├── .env
└── settings.py
다음 코드를 에 추가합니다.settings.py
:
# settings.py
import os
from os.path import join, dirname
from dotenv import load_dotenv
dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)
SECRET_KEY = os.environ.get("SECRET_KEY")
DATABASE_PASSWORD = os.environ.get("DATABASE_PASSWORD")
.env
는 각 환경 변수가 한 줄에 하나씩 나열된 간단한 텍스트 파일로, KEY="Value" 형식입니다.#로 시작하는 줄은 무시됩니다.
SOME_VAR=someval
# I am a comment and that is OK
FOO="BAR"
@Will의 답변 외에도 python-dotenv 모듈에는 .env 파일을 찾으려고 시도하는 find_dotenv()가 함께 제공됩니다.
# settings.py
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv())
SECRET_KEY = os.environ.get("SECRET_KEY")
DATABASE_PASSWORD = os.environ.get("DATABASE_PASSWORD")
다음과 같은 환경 변수를 설정할 수 있습니다.
export PRIVATE_KEY=0X32323
그리고 그것을 읽습니다.os
모듈.
import os
private_key=os.getenv("PRIVATE_KEY")
그러나 이러한 방식으로 환경 변수는 셸이 활성 상태인 기간 동안만 작동합니다.셸을 닫고 다시 시작하면 환경 변수를 다시 설정해야 합니다. python-dotenv
우리가 이 반복적인 일을 하는 것을 막습니다.이 생성의 경우.env
이 형식의 변수 파일 및 추가
PRIVATE_KEY=fb6b05d6e75a93e30e22334443379292ccd29f5d815ad93a86ee23e749227
그런 다음 파일에서 당신은 anv 변수에 접근하기를 원합니다.
import os
from dotenv import load_dotenv
#default directory for .env file is the current directory
#if you set .env in different directory, put the directory address load_dotenv("directory_of_.env)
load_dotenv()
load_dotenv()
에서 환경 변수를 설정합니다..env
그리고 우리는 접속합니다.os
모듈
private_key=os.getenv("PRIVATE_KEY")
찾으려는 파일을 지정하려면 @cannin에 추가하십시오.
from dotenv import find_dotenv
from dotenv import load_dotenv
env_file = find_dotenv(".env.dev")
load_dotenv(env_file)
bash 또는 zsh와 같은 셸에서 앱을 시작하는 경우 (npm) dotenv 또는 python-dotenv와 같은 .env 관리 유틸리티의 포인트가 무트가 됩니다.
다음은 12-Factor App에서 권장하는 구성을 간단하고 직접적이며 안전하게 해결하는 bash로 .env를 관리하는 방법의 예입니다.또한 추가 종속성이 필요하지 않습니다.
아래에서 호스팅되는 프로젝트가 주어집니다.~/projects/foobar/
프로젝트 공간 밖의 안전한 위치에 환경 파일을 만듭니다(예:~/.envs/foobar/dev
) 내용은 다음과 같습니다.
set -a
PROJECT=foobar
DB_NAME=foobar_dev
DB_PASSWORD=5ecret
CACHE_ENABLED=
DEBUG=yes
LOG=/tmp/foobar.log
...
set +a
그런 다음 프로젝트 공간에서 해당 파일에 대한 심볼 링크를 만듭니다.
$ ln -s ~/.envs/foobar/dev ~/projects/foobar/.env
이제 프로젝트에 다음이 있습니다..env
파일이 실제 파일에 연결됩니다.심볼릭 링크를 소스화할 때 사이의 모든 변수set -a
그리고.set +a
환경으로 내보냅니다.
$ source ~/projects/foobar/.env
그리고 voila!환경 파일의 소스가 된 동일한 셸 인스턴스에서 python을 실행하는 경우 python을 검색하여 구성을 업데이트할 수 있습니다.
import os
config.update(os.environ)
만드는 포인트.env
의 ~/.envs/foobar/dev
하는 것에 입니다.gitnore에 목록을 표시하는 데 추가적인 예방 조치입니다.어떤 이유로 파일을 버전 제어로 체크인해야 하는 경우에는 해당 내용이 다른 파일에 대한 링크로 표시됩니다.
언급URL : https://stackoverflow.com/questions/41546883/what-is-the-use-of-python-dotenv
'programing' 카테고리의 다른 글
__init__()가 부모 클래스의 __init_()을 호출해야 합니까? (0) | 2023.07.16 |
---|---|
파이썬에서 반복기를 청크(n개)별로 반복합니까? (0) | 2023.07.16 |
Python에서 인스턴스 변수를 가져오는 방법은 무엇입니까? (0) | 2023.07.16 |
Python에서 콘솔 출력 바꾸기 (0) | 2023.07.16 |
기본 키와 대리 키의 차이점은 무엇입니까? (0) | 2023.07.16 |