티스토리 뷰

🐍/DRF

[Heroku] Heroku로 장고 API 배포하기

사용자 eungding 2020. 9. 15. 23:10
728x90
반응형

[1] Heroku에 필요한 패키지 설치

 

해당 프로젝트에 들어가서 필요한 패키지들을 설치해줍니다.

pip install dj-database-url psycopg2-binary gunicorn whitenoise

 

dj-database-url과 psycopg2-binary은 헤로쿠에서 사용하는 DB인 postgresql을 위한 패키지,

gunicorn은 배포하기위해 필요한 패키지,

whitenoise는 정적파일의 사용을 돕는 미들웨어 라고 합니다. 

 

[2] requirements 파일 만들기 

설치가 끝나면 아래 명령어로 requirements 파일을 만들어줍니다. (플젝에서 쓰는 패키지 리스트가 담긴 파일이에요-!)

pip freeze > requirements.txt

프로젝트에 보면 해당 파일이 생겨있답니다. 

 

 

[3] Settings.py 변경 

 

settings.py에 가서 아래와 같이 Secret_key랑 debug를 바꿔줍니다. 

import os
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 기존에 있던 값)

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = bool(os.environ.get('DJANGO_DEBUG', False))

 

 

그 다음 미들웨어 쪽에 가서 미들웨어를 추가해줍니다. 

'whitenoise.middleware.WhiteNoiseMiddleware'

 

 

 

 

그다음 DATABASES 쪽에 가서 수정해줍니다. 

import 해주고

import dj_database_url

 

DataBases 밑에 아래와 같은 코드를 추가해주세요

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

 

[4] Procfile 만들기

 

Procfile라는 이름의 파일을 만들어줍니다.

그리고 아래 코드를 추가합니다. 

 

web: gunicorn 프로젝트이름.wsgi --log-file -

 

 

[5] runtime.txt 만들기

 

그 다음 runtime.txt 라는 파일을 만들어줍니다. 

 

 

현재 파이썬 버전을 확인하고 

파일에 적어주세요

(⚠️ python을 소문자로 적어주셔야합니다 Python 안돼요 ⚠️)

 

 

 

[6] 헤로쿠 CLI 설치하기

 

아래 명령어로 헤로쿠 CLI 설치해줍니다. 

brew install heroku/brew/heroku

 

아래 명령어로 입력하면 로그인 웹이 뜨는데, 로그인을 하고 다시 CLI로 돌아옵니다. 

heroku login

 

앱을 만들어줍니다. (⚠️ 여기서부터 나오는 '앱이름' 은 장고 프로젝트 안의 앱이 아니라 헤로쿠 대쉬보드에 나오는 앱이름입니다 ⚠️)

heroku create 앱이름

 

이제 헤로쿠 대쉬보드 에 들어가보면 앱이 만들어져있습니다

 

 

[7] 깃헙 레파지토리 연결 & 배포

 

Deploy 탭으로 가서 깃헙 레파지토리를 연결합니다.

 

 

그리고 Deploy Branch 해줍니다.

 

[8] DB 마이그레이션 

 

그 다음에 CLI로 돌아와서 마이그레이션 해줍니다. 

heroku run python manage.py migrate --app 앱이름

 

(명렁어 돌리는 문법은 'heroku run 커맨드' 입니다)

 

[추가] 로그보기

 

참고로 CLI에서 아래의 명령을 입력하면 

heroku logs --tail --app 앱이름 

로그를 볼 수 있습니다. 

 

 

[추가] 슈퍼유저 만들기

heroku run python manage.py createsuperuser

 

 

 

 

Reference

devcenter.heroku.com/articles/getting-started-with-python?singlepage=true

 

Getting Started on Heroku with Python | Heroku Dev Center

Getting Started on Heroku with Python Last updated 03 September 2020 Introduction This tutorial will have you deploying a Python app (a simple Django app) in minutes. Hang on for a few more minutes to learn how it all works, so you can make the most out of

devcenter.heroku.com

 

tutorial-extensions.djangogirls.org/ko/heroku/

 

옵션: 헤로쿠(Heroku) 배포하기 · Django Girls Tutorial: Extensions

 

tutorial-extensions.djangogirls.org

 

dgkim5360.tistory.com/entry/deploy-django-project-on-heroku

 

Heroku에 django 프로젝트 배포

클라우드 서비스는 개발자 뿐만 아니라 일반인에게도 친숙한 개념이 될 정도로 널리 퍼져있다. 대중적으로는 드랍박스 등의 저장소 서비스로 클라우드를 인식하고 있을 가능성이 높은데, 이 드

dgkim5360.tistory.com

 

728x90
반응형
댓글
댓글쓰기 폼