1. Settings.py 수정하기
보안과 외부 접속 설정을 위하여 SECRET_KEY와 DEBUG, ALLOWED_HOSTS를 수정해야 합니다.
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '기존의 시크릿키')
DEBUG = bool( os.environ.get('DJANGO_DEBUG', True) )
ALLOWED_HOSTS = ['*']
2. .gitignore파일 만들기
github에 올리기 전에 올리면 안 되는 내용을 필터링해줍니다.. gitignore파일을 manage.py파일과 같은 위치에 만들어주어야 합니다.
### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
media
3. heroku에 올릴 준비하기
3-1. Procfile파일 만들기
heroku에 올리기 위하여 필요한 파일입니다. 이 파일 또한 manage.py, .gitignore 파일이 있는 위치에 만들어 줍시다.
안에는 아래의 내용과 처음 startproject 하였던 프로젝트 명을 적어주면 됩니다.
web: gunicorn 프로젝트명.wsgi --log-file -
3-2. 여라가지의 라이브러리 설치
heroku를 사용하기 위하여 아래의 라이브러리를 설치하여 줍니다.
pip install gunicorn
pip install dj-database-url
dj-database-url을 설치하였다면 settings.py 맨 하단에 아래의 코드를 추가해 줍시다.
# Heroku: Update database configuration from $DATABASE_URL.
import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
pip install psycopg2-binary
pip install whitenoise
whitenoise도 마찬가지로 settings.py에 알려주어야 합니다.
settings.py에서 MIDDLEWEAR 맨 위에 다음 코드를 넣어줍시다.
'whitenoise.middleware.WhiteNoiseMiddleware',
3-3. 라이브러리 리스트 만들기
지금까지 설치한 라이브러리들을 뽑아내 heroku에게도 알려줍니다. 아래의 명령어를 입력하면 지금까지 pip install 하였던 라이브러리들이 requirements.txt에 들어가게 됩니다.
pip freeze > requirements.txt
3-4. runtime.txt 파일 만들기
runtime.txt 파일을 manage.py와 같은 위치에 만들어 안에 python 버전이 무엇인지 적어줍시다. 그래야 heroku와 충돌을 막을 수 있습니다.
python --version
해당 명령어로 자신의 python이 몇 버전인지 확인할 수 있습니다.
python-3.7.2
이때 주의할 점은 version을 입력하여 나온값을 그대로 붙여 넣으면 안 된다는 점입니다.
대소문자와 "-" 에 주의해 주세요
4. github push하기
자신의 github에 파일들을 모두 올려주어야 합니다. 새로운 repositories를 설정하여 올려줍시다.
git init
git add .
git commit -m "first commit"
git remote add origin "github 주소가 들어갈 자리입니다."
git push -u origin master
github로 돌아가서 파일들이 잘 올라갔는지 확인합니다.
5. heroku 올리기
5-1. 회원가입 및 heroku 설치
heroku에 회원가입을 한 뒤 Heroku CLI를 설치하여야 합니다. 새로 설치를 한다면 컴퓨터를 한번 재부팅을 해주시기 바랍니다.
https://devcenter.heroku.com/articles/getting-started-with-python#set-up
5-2. 로그인 및 create
heroku login
해당 명령어로 로그인을 하여 vscode와 연결하여 줍니다.
heroku create 서버이름
create를 해줍시다.
create 뒤에 오는 이름으로 서버가 만들어졌습니다.
만약 이미 heroku 서버가 존재 한다면??
heroku git:remote -a AppName
으로 설정해 주시면 됩니다.
5-3. heroku push
이제 서버에 올려줍시다. 서버에 올리기 전에 주의해야 할 점은 github에 최종 파일들이 모두 등록이 되어있어야 합니다. 꼭 git push를 하고 서버를 만들어 올리시기 바랍니다.
git push heroku master
저는 문제없이 한 번에 올라갔습니다. 만약 오류가 뜬다면 remote를 잘 읽어보시기 바랍니다...
5-4. database 등록
heroku run python manage.py migrate
heroku 서버로 옮겼기 때문에 database를 등록하여 줍니다.
또한 superuser도 새로 설정해주어야 합니다.
heroku run python manage.py createsuperuser
이제는
heroku run python manage.py collectstatic
를 사용하여 static 파일을 모아줍니다. (기본 설정된 파일들 amdin 등등)
6. 끝
heroku open
open 명령어로 지금까지 만든 project가 heroku에 잘 올라갔는지 확인하면 됩니다.
database가 초기화되었기 때문에 데이터는 새롭게 등록해주어야 합니다.
이제 누구나 제가 만든 홈페이지로 들어올 수 있게 되었습니다!
'코딩공부 > Python Django' 카테고리의 다른 글
python django heroku + aws s3 이용하기 (마무리) (0) | 2020.01.02 |
---|---|
python django heroku + aws s3 이용하기 (버킷 생성 및 key 발급) (0) | 2020.01.02 |
KKU likelion django project (8) (0) | 2020.01.02 |
KKU likelion django project (7) (0) | 2020.01.02 |
KKU likelion django project (6) (0) | 2020.01.02 |