Django 웹사이트 Heroku 배포하기

멋쟁이 사자처럼🦁 9기 활동하면서 django를 이용한 웹사이트를 만들었다. 해커톤에 제출하기 위해서 Heroku를 사용해서 배포를 했다. 오늘은 heroku 로 배포하는 방법을 복습하겠다.

Heroku는 무료 배포가 가능하고 배포 방법도 간단하다!

*주의점은 30분마다 접속하는 기록이 없다면 재부팅이되어 서버에 저장되었던 사진 등 데이터가 사라지는 걸 고려해야한다.

(모든 code는 VScode 터미널에 입력하면 된다.)

1. 회원가입

2. Create New App을 통해 새로운 앱을 생성, 지역은 미국/유럽 설정

3. Heroku CLI 설치 (MAC OS)

터미널에 입력.

 $ brew tap heroku/brew && brew install heroku 

* 4. 만약 Anaconda 사용유저는

VS Code에서 사용하는 python version과 일치하는지 확인하고, 다르다면 동일하게 같은 버전으로 업데이트를 해야한다. pip도 최신 버전으로 업그레이드 해줘야한다.

	python -m pip install --upgrade pip

필자는 Anaconda가 없기 때문에 4번은 넘어갔다.

5. Settings.py 수정

SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '기존 시크릿키’)
DEBUG = bool( os.environ.get('DJANGO_DEBUG', True) )
ALLOWED_HOSTS = ['*']

6. .gitnore 파일 위치 확인

manage.py 와 같은 파일 위치인지 확인한다.

7. manage.py 와 동일한 위치에 Procfile추가


해당 파일에

web: gunicorn <프로젝트명>.wsgi –log-file -

라고 코드 작성.
프로젝트명 확인은 settings.py에서 확인가능

WSGI_APPLICATION = '프로젝트명.wsgi.application’

중간중간에 잔잔한 오류가 날 수 있다. 이럴 때는 VScode에 나오는 에러를 잘 읽어보고 구글링하면 쉽게 해결할 수 있다. 침착하자 ..

8. Heroku에 장고 모듈 설치

먼저,
source venv/bin/activate => 가상환경 on

  pip install gunicorn whitenoise django-Heroku psycopg2-binary

9. Settings.py 수정

코드 맨 뒤에 밑의 코드를 작성한다.

import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)

MIDDLEWARE 부분도 하나 추가한다.

MIDDLEWRE = [ ...
'whitenoise.middleware.WhiteNoiseMiddleware’, ]

10. 라이브러리 리스트 만들기(manage.py와 같은 위치)

밑의 코드를 터미널 창에 입력

pip freeze > requirements.txt

11. runtime.txt 파일 만들기

python-x.x.x

(vscode python 버전 입력하면 된다.)

해당 txt 파일에 위의 파이썬 버전만 저런식으로 입력하면 된다.

만약에 python 버전이 어떤지 확인하려면 python –version 를 터미널 창에 입력하면 친절하게 컴퓨터가 알려준다!

12. Github repository에 push하기

해당 프로젝트를 Github repository에 push를 해놓아야 한다.
방금 막 레포지토리를 만들고 왔다면?

git init
git add .
git commit -m "커밋 메세지"
git remote add origin "github repository url"

13. Heroku 로그인 & 서버(앱) create

터미널 창에 입력한다.

heroku login
heroku create 서버이름

로그인 성공시,

이렇게 나온다.

*만약 서버/앱 생성을 해놓았다면

Heroku git:remote –a Appname

create대신 위의 코드 입력

14. Heroku에 코드 push 하기

git push heroku main

venv이 있는 폴더에서 push 해야한다.

15. Heroku db에 등록하기 * 오류 파티 주의

heroku run python manage.py migrate
heroku run python manage.py createsuperuser
Heroku run python manage.py collectstatic

여기서 나는 migrate을 하니 Pillow를 설치하라고 했다. 그래서
heroku remote를 끊고, migrate, db.sqlite3 파일을 삭제하고, makemigrations, migrate를 다시 했다.

remote 끊는 방법
git remote remove heroku
remote 된거 확인 방법
git remote -v

하다가 이상하게 migrate가 안돼는 경우가 있다. 배포하다가 지치고 싶지 않아서 그냥 create했던 app을 삭제하고 다시 앱을 만드니 편했다..

앱 삭제하는 명령어

heroku git:remote -a 앱이름

16. 배포한 프로젝트 열기

heroku open

배포 끝!!!!!!!!!

단국대 9기 대표님 감사합니다.. 덕분에 복습잘할 수 있었습니다🥰

좋은 웹페이지 즐겨찾기