django 05. python anywhere를 이용한 쉬운 배포
28 Feb 2017 | python 파이썬 Django 배포 python anywheredjango 05. python anywhere 를 이용한 쉬운 배포
파이썬 웹 프로그래밍 - Django로 웹 서비스 개발하기
https://www.pythonanywhere.com/
설치전 요구사항
- 로컬에 git 또는 sourceTree 설치하기
- github 계정 생성
- 로컬 프로젝트 github 에 업로드
- 참고 강좌
- https://opentutorials.org/course/1492
- https://backlogtool.com/git-guide/kr/
pythonanywhere 회원가입
이메일만으로 쉽게 가입 가능
bash 실행
$ git clone https://github.com/honux77/lotto-web $ tree lotto-web virtualenv 설정
$ virtualenv --python=python3.5 lottoenv $ source lottoenv/bin/activate $ pip install django==1.10 whitenoise 서버 설정
$ cd lotto-web $ python manage.py collectstatic $ python manage.py migrate $ python manage.py createsuperuser web 메뉴 - virtualenv 설정
/home/<your-username>/your-env-name/ web 메뉴 - WSGI 설정
import os import sys path = '/home/<your-username>/<your-project-folder>/' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' from django.core.wsgi import get_wsgi_application from whitenoise.django import DjangoWhiteNoise application = DjangoWhiteNoise(get_wsgi_application()) secret key 생성
$ python genkey.py - 코드 내용
""" Pseudo-random django secret key generator. - Does print SECRET key to terminal which can be seen as unsafe. """ import string import random # Get ascii Characters numbers and punctuation (minus quote characters as they could terminate string). chars = ''.join([string.ascii_letters, string.digits, string.punctuation]).replace('\'', '').replace('"', '').replace('\\', '') SECRET_KEY = ''.join([random.SystemRandom().choice(chars) for i in range(50)]) print(SECRET_KEY) settings.py 수정
- bash에서 vi settings.py 입력후 아래 SECRET_KEY 내용을 genkey.py로 생성한 내용으로 대체
DEBUG=False ALLOWED_HOST=[honux.pythonanywhere.com] SECRET_KEY= '....' 배포 후, 수정사항 pythonanywhere에 반영하기
git push
- python manage.py collectstatic 수행
- 수정사항을 git push
git pull
- 사이트내 Your consoles bash 실행
- virtualenv 가 실행되어 있는지 확인
- 프로젝트 상위 폴더에서 git pull 실행
$ git pull origin master - 오류 발생시
git stash등으로 해결 후, 아래 절차대로 진행 python manage.py collectstaticpython manage.py makemigrationspython manage.py migrate
Reload
- web 메뉴에서 Reload 버튼을 선택하여 동기화
- 사이트에서 반영사항 확인
초보몽키의 개발공부로그