[DjangoHeroku] 장고 heroku에 배포하기


장고 heroku에 배포하기
https://djangoform.herokuapp.com/boards/

Django heroku 웹에 배포하기


기존에 설치한 가상환경 삭제

새롭게 가상환경 생성

django 설치

pip install django

추가로 설치한 모듈 설치

bootstrap4, Ipython, django-allauth

pip install django-bootstrap4
pip install etccccc

설치한 모듈 .txt 파일로 저장

pip freeze > requirements.txt

최상단 프로젝트 .gitignore 파일 코드 수정

맨 마지막에 아래 내용 추가

# Text backup files
*.bak

# Database
*.sqlite3

# 환경 설정 관련 파일
.env

github repository에 remote, add, push 하기맨 마지막에 아래 내용 추가

만약 깃 리모트 변경하고 싶다면
➜  DjangoForm git:(master) rm -rf .git
➜  DjangoForm git init
/Users/kang/Documents/PycharmProjects/DjangoForm/.git/ 안의 빈 깃 저장소를 다시 초기화했습니다
➜  DjangoForm git:(master) ✗ git remote add origin https://github.com/kangpro404/DjangoForm.git

토큰값, 보안정보 숨기는 방법 python-decouple 설치

pip install python-decouple

최상단에 .env 파일 생성

# .env
SECRET_KEY=
DEBUG=
TELEGRAM_API_KEY=

시크릿 키와 디버그 값 변경

django_form - settings.py 코드


import os
from decouple import config  # .env 안에 환경변수를 사용하게 함

(기존) DEBUG = True
->
(변경) DEBUG = config('DEBUG')


(기존) SECRET_KEY = 'm@yb&y=6w=a-fc3en!8!e*^m$5-q@ld0xq+#cfe@he1hb(bn6m'
->
(변경) SECRET_KEY = config('SECRET_KEY')

deploy이 하기전 checklist를 확인 할 수 있음

python manage.py check --deploy

brew에서 postgresql 설치

brew install postgresql

heroku 모듈 통해서 배포할 예정

pip install django-heroku

해로크 관련 django_form - settings.py 코드 수정

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

# settings.AUTH_USER_MODEL
AUTH_USER_MODEL = 'accounts.User'

LOGIN_REDIRECT_URL = 'boards:index'

# Configure Django App for Heroku.
import django_heroku
django_heroku.settings(locals())

웹이 구동되는데 필요한 프로세스 목록 적기

Procfile 파일 생성

web: gunicorn django_form.wsgi --log-file -

# 파일 내에 주석 달면 안됨
# web: gunicorn <프로젝트이름>.wsgi --log-file -
# django-admin startproject django_form . 에서 썼던 프로젝트 이름

django와 함께 사용되는 heroku에서 추천하는 http 서버

pip install gunicorn

requirements.txt 파일 생성

pip freeze > requirements.txt

python 버전 확인

(venv) ➜  DjangoForm git:(master) ✗ python -V
Python 3.7.3

프로젝트 최상단에 runtime.txt 파일 생성

python-3.7.3

Heroku 가입하기
https://www.heroku.com/

Heroku 로그인 접속
https://www.heroku.com/home
https://devcenter.heroku.com/articles/heroku-cli

Heroku cli 설치

brew tap heroku/brew && brew install heroku

터미널에서 heroku 실행해보기

아래와 같이 뜨면 설치가 잘 된거임.

(venv) ➜  DjangoForm git:(master) ✗ heroku
CLI to interact with Heroku

VERSION
    heroku/7.25.0 darwin-x64 node-v11.14.0

USAGE
    $ heroku [COMMAND]

COMMANDS
    access          manage user access to apps
    addons          tools and services for developing, extending, and operating your app
    apps            manage apps on Heroku
    auth            check 2fa status
    authorizations  OAuth authorizations
    autocomplete    display autocomplete installation instructions
    buildpacks      scripts used to compile apps
    certs           a topic for the ssl plugin
    ci              run an application test suite on Heroku
    clients         OAuth clients on the platform
    config          environment variables of apps
    container       Use containers to build and deploy Heroku apps
    domains         custom domains for apps
    drains          forward logs to syslog or HTTPS
    features        add/remove app features
    git             manage local git repository for app
    help            display help for heroku
    keys            add/remove account ssh keys
    labs            add/remove experimental features
    local           run heroku app locally
    logs            display recent log output
    maintenance     enable/disable access to app
    members         manage organization members
    notifications   display notifications
    orgs            manage organizations
    pg              manage postgresql databases
    pipelines       groups of apps that share the same codebase
    plugins         list installed plugins
    ps              Client tools for Heroku Exec
    psql            open a psql shell to the database
    redis           manage heroku redis instances
    regions         list available regions for deployment
    releases        display the releases for an app
    reviewapps      disposable apps built on GitHub pull requests
    run             run a one-off process inside a Heroku dyno
    sessions        OAuth sessions
    spaces          manage heroku private spaces
    status          status of the Heroku platform
    teams           manage teams
    update          update the Heroku CLI
    webhooks        setup HTTP notifications of app activity

터미널에서 heroku login

중간에 login 엔터하기, 인터넷에서 로그인 성공하면 아래와 같이 뜸.

(venv) ➜  DjangoForm git:(master) ✗ heroku login
heroku: Press any key to open up the browser to login or q to exit: 
oginOpening browser to https://cli-auth.heroku.com/auth/browser/1a8aefff-b784-4902-8372-bc6d470e034d
Logging in... done
Logged in as gangpro@korea.ac.kr
(venv) ➜  DjangoForm git:(master) ✗ ogin

heruku app 생성

(venv) ➜  DjangoForm git:(master) ✗ heroku create djangoform
Creating ⬢ djangoform... done
https://djangoform.herokuapp.com/ | https://git.heroku.com/djangoform.git
(venv) ➜  DjangoForm git:(master) ✗ 


# heroku create <앱이름>

시크릿 키 heroku에 알려주기

heroku config:set SECRET_KEY=m@yb&y=6w=a-fc3en!8!e*^m$5-q@ld0xq+#cfe@he1hb(bn6m

디버그 heroku에 알려주기

(venv) ➜  DjangoForm git:(master) heroku config:set DEBUG=False
Setting DEBUG and restarting ⬢ djangoform... done, v4
DEBUG: False
(venv) ➜  DjangoForm git:(master) 

heroku에 올리기

git add .
git commit -m "@@@@"
git push heroku master

heroku open

지금은 DB가 없어서 오류 발생

heroku 대시보드에서 migrate 하기

heroku 대시보드 - More - Console 실행
python manage.py migrate

내가 만든 앱 오픈

https://djangoform.herokuapp.com/admin/login/?next=/admin/

슈퍼유저만들기

heroku 대시보드 - More - Console 실행
python manage.py createsuperuser

사용자 이름 : 
이메일 주소 :
비밀번호 : 
비밀번호(확인) :

배포 완료 !!! https://djangoform.herokuapp.com/boards/

환경


macOS Mojave 10.14.5, python 3.6.8, django 2.2.1, PyCharm CE 2018.3.7.






© 2020. GANGPRO. All rights reserved.