Pythonanywhere를 통하여, Django 앱을 서비스해보자
Pythonanywhere 란?
- Django 또는 Flask와 같이 파이썬으로 구현된 웹 어플리케이션을 웹 호스팅해주는 서비스로서, 외부에서 접근가능하도록 해주어, 실제 서비스 배포와 같은 테스트를 해볼 수 있게 해준다.
필자는 Django 테스트앱을 개발하는 중이라, 해당 프레임워크로 서비스를 올려본다.
- Django 어플리케이션 상에서의 준비
1. settings.py
- ALLOWED_HOSTS = ['(pythonanywhere 계정명).pythonanywhere.com']
- STATIC_ROOT = os.path.join(BASE_DIR, 'static')
* STATIC_ROOT 란?
Django 내의 각 앱에 있는 static 폴더들과 STATICFILES_DIRS 내에 있는 파일들을 collectstatic(밑에서 사용) 명령어를 사용하여, 한 곳에 모으는 경로
2. 프로젝트 폴더를 압축 (압축해제시, 프로젝트 폴더부터 나오도록)
- Pythonanywhere 페이지 상에서의 준비
(이제부터가 진짜 시작)
1. 회원가입 및 로그인
- https://www.pythonanywhere.com에 접근하여, 가입
2. 로그인 후, 오른쪽 상단의 Files 를 클릭
3. Upload a file 을 통하여, 압축파일 업로드
4. 업로드가 완료되었으면, 바로 위의 Open Bash console here 클릭하여 콘솔로 접근
5. ls 명령어를 통하여, 압축파일이 정상적으로 올라갔는지 확인 후, unzip (파일명).zip 명령어를 통하여 압축해제
6. 가상환경 생성 (* pythonanywhere 콘솔환경에서는 virtualenv가 기본으로 설치되어져있음)
- 'virtualenv --python=python3.7 fc_env' 명령어(파이썬버전과 가상환경명칭은 알아서 변경해서 사용)를 사용하여, 가상환경 생성
7. 'source fc_env/bin/activate' 명령어로 가상환경 활성화 후, pip 를 통해서 필요한 패키지들을 설치
8. 프로젝트 폴더로 이동('cd 프로젝트폴더명' 명령어 사용)후에 'python manage.py collectstatic' 명령어를 사용하여 static 파일을 한 곳으로 모은다. (yes or no 에서는 yes 입력 후 엔터)
9. 필요한 경우에는 python manage.py migrate 등을 통하여, 모델반영
10. exit 를 통하여 종료 후에 브라우저 뒤로가기 클릭
- 파이썬 코드를 올렸으니, 웹 환경을 세팅하자!
11. 다시 브라우저로 돌아와서 오른쪽 상단에 Web 버튼 클릭
12. Add a new web app 버튼 클릭하여, 새로운 환경 생성
(단, 아래 화면에서 Django가 아닌, Manual confi... 를 선택해야한다!)
13. 정상적으로 완료되었다면, 아래의 항목별로 상세 설정을 하자. (중요!!!!)
13-1. Code
- Source code : /home/계정명/프로젝트폴더명/
- Working directory : /home/계정명/
- WSGI configuration file 내의 /var/.../..._wsgi.py 파일 클릭 후 아래와 같이 수정(주석처리 및 주석해제과 동시에 mysite 로 입력된 부분을 프로젝트 폴더명으로 변경해야함)
Save 후 다시 브라우저 뒤로가기
13-2. Virtualenv : /home/계정명/fc_env
13-3. Static files : (URL) /static/ , (Directory) home/계정명/프로젝트폴더명/static/
14. 상단의 'Reload 계정명.pythonwhere.com' 버튼 클릭 후 해당 URL 접근하여 확인하면 끝!
처음이라 생소했지만, 신기했던 경험..
자주 써먹어 봐야겠다!