관리 메뉴

Storage Gonie

20. python anywhere를 이용한 Django 프로젝트 배포 본문

웹개발/Django 웹서비스 개발(인프런)

20. python anywhere를 이용한 Django 프로젝트 배포

Storage Gonie 2019. 2. 12. 12:20
반응형

1. 프로젝트가 깃허브에 업로드 되어있는 상태이어야 한다.


2. https://www.pythonanywhere.com 에서 회원가입을 한다.

- Beginner로 회원가입을 하면 도메인을 하나 무료료 사용할 수 있게 되며 한개의 앱을 올릴 수 있다.


3. 로그인 후 'Web'에서 좌측의 "Add a new web app"을 클릭한다.

- 자동으로 할 수 있으나 수동으로 하면서 공부할 수 있도록 Manual configuration을 선택.

- 파이썬 버전은 3.5선택

- 마지막으로 Next를 누르면 시간이 좀 지난 뒤 화면이 넘어간다.





4. Consol에서 Bash 눌러주면 나의 Bash Console이 생성됨. 그런뒤 아래의 생성된 "Bash console 11761935"클릭



5. git clone을 이용해서 자신의 프로젝트를 복사해욤

- "git clone https://github.com/ldgeao99/django_app1_lotto"

- "tree  django_app1_lotto"를 입력하면 해당 디렉토리의 구조를 볼 수 있음


6. 가상환경 생성 및 가상환경 실행

- "virtualenv --python=python3.5 lottoenv"

- "source lottoenv/bin/activate"                        -> 비활성화 하고 싶다면 "deactivate"


7. 장고 및 whitenoise설치

- "pip install django==1.10"

- "pip install "whitenoise<4""                -> 장고 1.10이랑 화이트노이즈 4 이상버전이랑 호환이 안되는 듯

- "pip freeze"하면 설치된 패키지 확인 가능

- whitenoise 는 배포할 때 static 파일들을 쉽게 관리해주는 도구이다.(Heroku, AWS의 S3를 이용해서 정적파일을 배포하고 싶을 때 도와주는 툴)


8. "cd django_app1_lotto", "cd mysite" 에 들어간 뒤 다음의 것들 순차적으로 실행

- "python manage.py collectstatic", yes 하면 static이라는 폴더에 정적파일이 생김

- "python manage.py makemigrations"

- "python manage.py migrate"

- "python manage.py createsuperuser" username, email, password를 입력해줘야함


9. 다시 'Web'에서 생성한 virtualenv 경로를 입력해줘야함



10. WSGI파일을 클릭해서 수정하고 저장

- WSGI는 웹서버와 장고를 연결해주는 것

- 기본으로 들어가 있는 내용을 지우고 강의노트에 있는 코드로 복붙

- <your-username>에 내 아이디인 ldgeao99삽입

- 만약 프로젝트에서 사용하는 파일명이 다를 경우 path, mysite.settings같은 이름을 몇몇 곳 수정해주면 된다.

import os
import sys

path = '/home/ldgeao99/django_app1_lotto/mysite' # 강사님은 django_app1_lotto 까지만 썼는데 나는 폴더구조상 mysite 까지 써야했음
if path not in sys.path:
sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' # 앱명.settings

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(get_wsgi_application())


11. Web에서 Reload 샬라샬라 클릭 후 ldgeao99.pythonanywhere.com 접속이 정상적으로 되면 완료.


12. 완료 되더라도 다음의 것을 수정해줘야함.


- "git clone https://github.com/honux77/lotto-web"를 하여 강사님의 프로젝트 폴더에서 genkey.py(랜덤스트링 제너레이터)를 실행시켜 키를 얻는다.

- "python genkey.py" 후 나온 문자열 복사

- 다시 내 프로젝트폴더인 /django_app1_lotto/mysite/mysite 로 이동해서 nano 혹은 vi 에디터를 이용해 settings.py를 수정. "nano settings.py"

- SECRET_KEY = "여기에 방금 생성한 랜덤문자열 복붙", DEBUG = FALSE로 해줘야함

- 에디터에서 빠져나올땐 컨트롤 + X, y입력

- 디폴트로 생성된 SECRET_KEY는 외부에 노출되어 있는 값이므로. DEBUG는 아마 보안상?


13. Web에서 Reload 샬라샬라 클릭 후 재접속

반응형
Comments