티스토리 뷰
[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라는 이름의 파일을 만들어줍니다. (참고: The 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
tutorial-extensions.djangogirls.org/ko/heroku/
dgkim5360.tistory.com/entry/deploy-django-project-on-heroku
'🐍 > DRF' 카테고리의 다른 글
[DRF] 기본 Exception과 APIExecption (0) | 2020.09.24 |
---|---|
[DRF] TokenAuthentication (유저마다 토큰을 발급해서 유저를 식별해보자) (10) | 2020.09.21 |
[DRF] ERD(Entity–relationship model) 그리기 & 모델 만들기 (0) | 2020.09.13 |
[PythonAnywhere] 장고 admin 페이지 CSS가 안먹을때 (0) | 2020.09.13 |
[PythonAnywhere] 장고 rest API 배포하기 (0) | 2020.09.11 |
- Total
- Today
- Yesterday
- 구글 Geocoding API
- flutter 앱 출시
- flutter deep link
- Flutter Clipboard
- ipad multitasking
- cocoapod
- Flutter 로딩
- Dart Factory
- METAL
- Flutter getter setter
- DRF APIException
- 플러터 싱글톤
- Flutter Text Gradient
- 장고 URL querystring
- 플러터 얼럿
- PencilKit
- Django Firebase Cloud Messaging
- Sketch 누끼
- Watch App for iOS App vs Watch App
- Django FCM
- Python Type Hint
- SerializerMethodField
- github actions
- 장고 Custom Management Command
- flutter build mode
- drf custom error
- Flutter Spacer
- Django Heroku Scheduler
- flutter dynamic link
- ribs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |