소개
이 랩에서는 Flask 애플리케이션을 서버에 배포하는 방법을 배웁니다. 애플리케이션의 배포 파일을 생성하고 서버에 설치할 것입니다. 이 랩은 Flask, Python 의 가상 환경, 그리고 명령줄에 대한 기본적인 이해를 가지고 있다고 가정합니다.
참고: 코드 파일을 직접 생성하고 환경에서 실행해야 합니다. Web 5000 에서 Flask 서비스 상태를 미리 볼 수 있습니다.
애플리케이션 빌드
먼저, 애플리케이션을 위한 휠 (wheel) 파일을 생성해야 합니다. 이를 위해 build 도구를 사용할 것입니다. 아직 설치하지 않았다면 pip 를 사용하여 build 도구를 설치하십시오:
## 빌드 도구 설치
pip install build
이제 build 도구를 사용하여 휠 파일을 생성합니다:
## 휠 파일 빌드
python -m build --wheel
휠 파일은 dist 디렉토리에 flaskr-1.0.0-py3-none-any.whl과 같은 이름으로 생성됩니다.
서버에 애플리케이션 설치
휠 파일을 서버로 복사합니다. 복사한 후, 새로운 Python 가상 환경을 설정하고 pip 를 사용하여 휠 파일을 설치합니다:
## 휠 파일 설치
pip install flaskr-1.0.0-py3-none-any.whl
이것은 새로운 환경이므로, 데이터베이스를 다시 초기화해야 합니다:
## 데이터베이스 초기화
flask --app flaskr init-db
비밀 키 구성
프로덕션 환경에서는 비밀 키를 임의의 값으로 변경해야 합니다. 임의의 비밀 키를 생성하려면 다음 명령을 실행하십시오:
## 임의의 비밀 키 생성
python -c 'import secrets; print(secrets.token_hex())'
instance 폴더에 config.py 파일을 생성하고 SECRET_KEY를 생성된 값으로 설정합니다.
## .venv/var/flaskr-instance/config.py
SECRET_KEY = 'your_generated_secret_key'
프로덕션 서버로 애플리케이션 실행
프로덕션 환경에서는 내장 개발 서버 대신 WSGI 서버를 사용해야 합니다. 여기서는 Waitress 를 WSGI 서버로 사용합니다.
먼저, Waitress 를 설치합니다:
## Waitress 설치
pip install waitress
이제 Waitress 에게 애플리케이션을 제공하도록 지시합니다:
## Waitress 로 애플리케이션 실행
waitress-serve --call 'flaskr:create_app'
요약
이 랩에서는 Flask 애플리케이션을 프로덕션 서버에 배포하는 방법을 배웠습니다. 애플리케이션을 wheel 파일로 빌드하고, 서버에 설치했으며, 비밀 키를 구성하고, 프로덕션 WSGI 서버로 애플리케이션을 실행했습니다.