[Pythenywhere] 환경 변수의 설정(SECRET KEY 등)
디렉토리 구조(일부)
/
└ home/
└ USERNAME/
└ mysite/
├ static/
├ templates/
├ .env
└ flask_app.py
절차.1. 프로젝트 폴더 바로 아래에 환경 변수 저장
.env
Consoles 탭을 클릭하여 Bash Console에서 다음 작업을 수행합니다.
Bash
cd ~/mysite
echo "export SECRET_KEY=sekritvalue" >> .env
echo "export OTHER_SECRET=somethingelse" >> .env
1-2. 직접 생성.env
방법Files 탭을 클릭하여 프로젝트 폴더 바로 아래에 생성
.env
.envSECRET_KEY=sekritvalue
OTHER_SECRET=somethingelse
2. 설치python-dotenv
.env
에서는 파일의 시작 처리export
가 불가능했기 때문에 최소 버전 0.8python-dotenv
패키지가 확인되었습니다.2-1.
virtualenv
사용 시Bash
workon my-virtualenv-name
pip install python-dotenv
echo python-dotenv >> requirements.txt # 必要であれば
2-2. 사용하지 않음virtualenv
시Bash
python3.8 -m pip --user install python-dotenv
echo python-dotenv >> requirements.txt # 必要であれば
자세한 내용은 여기를 참고하시오3. 환경 변수 사용
환경 변수 활용
네트워크 응용 프로그램 자체의 상황
(인터넷에서 실제 웹 애플리케이션을 제공하는 작업자 프로세스가 환경 변수를 활용할 수 있도록 함)
Bash 콘솔의 경우
(데이터베이스 마이그레이션 또는 웹 응용 프로그램과 추가 명령줄 작업 수행)
WSGI
파일에 로드.env
웹 탭을 클릭하고 코드 표시줄WSGI
을 클릭하여 파일에 대한 링크/var/www/USERNAME_pythonanywhere_com_wsgi.py
-> 끝에 다음 코드 추가# このファイル内で project_home = '/home/USERNAME/mysite' と設定されている前提
import os
from dotenv import load_dotenv
# プロジェクトフォルダ直下に.envを置く場合
load_dotenv(os.path.join(project_home, '.env'))
# プロジェクトフォルダ直下に置かない場合
project_folder = os.path.expanduser('~/mysite')
load_dotenv(os.path.join(project_folder, '.env'))
환경 변수 사용os.getenv
를 통해 변수 액세스 가능py
import os
SECRET_KEY = os.getenv("SECRET_KEY")
3-2. virtualenv
스크립트에 파일 로드postactivate
Bash 콘솔.env
에서 파일에서 환경 변수 로드Bash
set -a; source ~/mysite/.env; set +a
웹 응용 프로그램 사용.env
을 가정하고 사용virtualenv
을 가정하면 Bash 컨트롤러 세션에서 사용할 수 있는 환경 변수의 편리한 위치를 virtualenvwrapper/workon
라고 하는 특수 스크립트입니다.활성화postactivate
할 때마다 자동으로 실행됩니다.일반 위치는 virtualenv
/home/USERNAME/.virtualenvs/my-project-virtualenv/bin/postactivate
스크립트에 상기 명령 추가Bash
echo 'set -a; source ~/mysite/.env; set +a' >> ~/.virtualenvs/my-project-virtualenv/bin/postactivate
예를 들어 source
를 사용하여 활성화postactivate
를 한 다음 workon my-project-virtualenv
를 실행하여 테스트한다.이렇게 하면 환경 변수는 웹 응용 프로그램 및
virtualenv
를 자동으로 읽어들입니다.참고 자료
Reference
이 문제에 관하여([Pythenywhere] 환경 변수의 설정(SECRET KEY 등)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/probabilityhill/items/f6be8ef9c60940466eef텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)