일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- c++
- getline
- string 함수
- string 메소드
- k-eta
- Django Nodejs 차이점
- Django의 편의성
- 입/출력
- double ended queue
- 백준
- vscode
- iOS14
- 구조체와 클래스의 공통점 및 차이점
- 장고란
- 엑셀
- 매크로
- 자료구조
- 입출력 패턴
- Django란
- 시간복잡도
- 이분그래프
- 2557
- 알고리즘 공부방법
- 표준 입출력
- correlation coefficient
- 연결요소
- UI한글변경
- 프레임워크와 라이브러리의 차이
- scanf
- EOF
- Today
- Total
Storage Gonie
20. python anywhere를 이용한 Django 프로젝트 배포 본문
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 샬라샬라 클릭 후 재접속
'웹개발 > Django 웹서비스 개발(인프런)' 카테고리의 다른 글
22. (app2) Django Model 생성(foreign key로 연결된 2개의 모델 만들기) (0) | 2019.02.17 |
---|---|
21. (app2) 셋업 및 urls.py와 views.py 수정( app2, polls 프로젝트 생성 및 Including another URLconf) (0) | 2019.02.17 |
19. (app1) 앱 다듬기(버튼을 이용한 리다이렉트, 클릭한 객체의 정보를 이용해 렌더링) (0) | 2019.02.12 |
18. (app1) POST 처리(form에서 버튼 클릭시 DB에 반영시키기) (0) | 2019.02.09 |
17. (app1) Django 데이터를 입력받는 form 만들기(form 형태만 만듬) (0) | 2019.02.09 |