[Pythenywhere] 환경 변수의 설정(SECRET KEY 등)

컨디션
  • PythonAnywhere
  • Python 3.9
  • GNU bash 5.0.17(1)-release (x86_64-pc-linux-gnu)
  • 디렉토리 구조
    디렉토리 구조(일부)
    /
     └ home/
        └ USERNAME/
           └ mysite/
              ├ static/
              ├ templates/
              ├ .env
              └ flask_app.py
    
    절차.
    1. 프로젝트 폴더 바로 아래에 환경 변수 저장.env
  • Bash Constore 사용 방법
  • 직접env 만들기 방법
  • 1-1. Bash Constore 사용 방법
    Consoles 탭을 클릭하여 Bash Console에서 다음 작업을 수행합니다.
    Bash
    cd ~/mysite
    echo "export SECRET_KEY=sekritvalue" >> .env
    echo "export OTHER_SECRET=somethingelse" >> .env
    
    1-2. 직접 생성.env 방법
    Files 탭을 클릭하여 프로젝트 폴더 바로 아래에 생성.env.env
    SECRET_KEY=sekritvalue
    OTHER_SECRET=somethingelse
    
    2. 설치python-dotenv
  • virtualenv 사용 시
  • virtualenv를 사용하지 않았을 때
  • 구 버전.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 콘솔의 경우
    (데이터베이스 마이그레이션 또는 웹 응용 프로그램과 추가 명령줄 작업 수행)
  • 3-1. 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 스크립트에 파일 로드postactivateBash 콘솔.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를 자동으로 읽어들입니다.
    참고 자료

    좋은 웹페이지 즐겨찾기