멋쟁이 사자처럼🦁 9기 활동하면서 django를 이용한 웹사이트를 만들었다. 해커톤에 제출하기 위해서 Heroku를 사용해서 배포를 했다. 오늘은 heroku 로 배포하는 방법을 복습하겠다.
Heroku는 무료 배포가 가능하고 배포 방법도 간단하다!
(모든 code는 VScode 터미널에 입력하면 된다.)
터미널에 입력.
$ brew tap heroku/brew && brew install heroku
VS Code에서 사용하는 python version과 일치하는지 확인하고, 다르다면 동일하게 같은 버전으로 업데이트를 해야한다. pip도 최신 버전으로 업그레이드 해줘야한다.
python -m pip install --upgrade pip
필자는 Anaconda가 없기 때문에 4번은 넘어갔다.
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '기존 시크릿키’)
DEBUG = bool( os.environ.get('DJANGO_DEBUG', True) )
ALLOWED_HOSTS = ['*']
manage.py 와 같은 파일 위치인지 확인한다.
해당 파일에
web: gunicorn <프로젝트명>.wsgi –log-file -
라고 코드 작성.
프로젝트명 확인은 settings.py에서 확인가능
WSGI_APPLICATION = '프로젝트명.wsgi.application’
중간중간에 잔잔한 오류가 날 수 있다. 이럴 때는 VScode에 나오는 에러를 잘 읽어보고 구글링하면 쉽게 해결할 수 있다. 침착하자 ..
먼저,
source venv/bin/activate => 가상환경 on
pip install gunicorn whitenoise django-Heroku psycopg2-binary
코드 맨 뒤에 밑의 코드를 작성한다.
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’, ]
밑의 코드를 터미널 창에 입력
pip freeze > requirements.txt
python-x.x.x
(vscode python 버전 입력하면 된다.)
해당 txt 파일에 위의 파이썬 버전만 저런식으로 입력하면 된다.
만약에 python 버전이 어떤지 확인하려면 python –version 를 터미널 창에 입력하면 친절하게 컴퓨터가 알려준다!
해당 프로젝트를 Github repository에 push를 해놓아야 한다.
방금 막 레포지토리를 만들고 왔다면?
git init
git add .
git commit -m "커밋 메세지"
git remote add origin "github repository url"
터미널 창에 입력한다.
heroku login
heroku create 서버이름
로그인 성공시,
이렇게 나온다.
*만약 서버/앱 생성을 해놓았다면
Heroku git:remote –a Appname
create대신 위의 코드 입력
git push heroku main
venv이 있는 폴더에서 push 해야한다.
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 앱이름
heroku open
배포 끝!!!!!!!!!
단국대 9기 대표님 감사합니다.. 덕분에 복습잘할 수 있었습니다🥰