Django의 쇼핑백 사용(6부) - Heroku에 배포
소개하다.
last part 이전에 사용자 인증부터 CRUD 작업과 날짜 필터까지 웹 응용 프로그램을 완성했습니다.만약 당신이 어떤 부분을 놓쳤다면 블로그 시리즈here를 볼 수 있습니다.이 부분 (마지막 부분) 에서, 우리는 Heroku에 우리의 웹 응용 프로그램을 배치할 것이다.
Heroku에 의하면-
Heroku는 회사가 응용 프로그램을 구축하고 납품하며 감시하고 확장할 수 있는 클라우드 플랫폼이다. 우리는 아이디어에서 URL까지의 가장 빠른 방식으로 모든 인프라 시설의 난제를 빙빙 돌았다.
Heroku에 프로그램을 배치하려면 프로젝트를 변경해야 합니다.우선 히로쿠에 무료 계좌를 만들어야 한다.heroku.com로 가서 계정을 만듭니다.계정을 만들면 계속할 수 있습니다.
Heroku 응용 프로그램 설정
Heroku 계정에 로그인하면 비슷한 화면의 환영을 받을 수 있습니다.pywisher 프로그램을 무시합니다.
새 단추를 누르고 새 앱 만들기를 누르십시오.응용 프로그램 이름을 입력하고 응용 프로그램 만들기 버튼을 클릭합니다.이름을 사용할 수 있는지 확인합니다.
설정 탭을 클릭하여 Buildpacks로 아래로 스크롤합니다.AddBuildPack 버튼을 클릭하고 Python을 추가합니다.
이 프로그램은 데이터베이스가 필요하기 때문에, 참고 자료에 Postgres 데이터베이스를 추가할 것입니다. (Heroku에서 무료로 제공합니다.)자원 탭을 클릭하여 검색창에서 댓글을 검색하세요.검색 결과에서 Heroku Postgres를 선택하고 Submit order form을 클릭하여 리소스에 추가합니다.
만약 우리가 첫 번째 부분에서 프로젝트를 세운 곳을 기억한다면, 우리는 환경 변수를 만들었다.히로쿠에 그것들을 추가해야 합니다. 왜냐하면 히로쿠가 없으면 프로그램이 작동하지 않기 때문입니다.설정 탭을 클릭하고 구성 변수로 스크롤한 다음 를 클릭하여 구성 변수를 표시합니다.다음과 같이 프로젝트에서 파일을 열고 구성 변수에 복사하여 붙여 넣습니다.
현재 .env
를 DEBUG
로 설정했기 때문에 배치 과정에서 발생한 모든 오류를 복구할 수 있습니다.나중에 True
로 변경합니다.
Github 저장소 설정
Github을 사용하여 응용 프로그램을 배치할 것입니다. 이것은 우리의 임무를 더욱 쉽게 할 것입니다.만약 Github 계정이 없다면, 자신을 위해 here을 만들어 주십시오.Github 계정이 있으면 계정에 로그인하십시오.로그인하면 다음과 같은 화면이 표시됩니다.
New 버튼을 클릭하여 새 저장소를 생성합니다.저장소 이름을 입력하고 를 클릭하여 저장소를 만듭니다.라이브러리를 만들면 다음과 같은 페이지가 표시됩니다.
시스템의 항목으로 이동합니다.시스템에 Git가 설치되어 있는지 확인합니다.없으면 here에서 설치합니다.프로젝트에서 터미널을 열고 다음 명령을 작성합니다.
$ git init
$ git remote add origin <your-repository-url-here>
$ git add .
$ git commit -m "Initial commit"
$ git push origin master
False
를 Github에서 제공하는 URL로 바꿉니다.다음 그림을 참조하십시오.
위 명령을 실행한 후 페이지를 다시 로드합니다.비슷한 출력을 볼 수 있습니다.
항목 변경
우선, 우리는 가상 환경에 의존 항목을 설치해야 한다.활성화되었는지 확인하세요.
$ pip install gunicorn dj-database-url whitenoise psycopg2
Heroku는 회사가 응용 프로그램을 구축하고 납품하며 감시하고 확장할 수 있는 클라우드 플랫폼이다. 우리는 아이디어에서 URL까지의 가장 빠른 방식으로 모든 인프라 시설의 난제를 빙빙 돌았다.
Heroku 계정에 로그인하면 비슷한 화면의 환영을 받을 수 있습니다.pywisher 프로그램을 무시합니다.
새 단추를 누르고 새 앱 만들기를 누르십시오.응용 프로그램 이름을 입력하고 응용 프로그램 만들기 버튼을 클릭합니다.이름을 사용할 수 있는지 확인합니다.
설정 탭을 클릭하여 Buildpacks로 아래로 스크롤합니다.AddBuildPack 버튼을 클릭하고 Python을 추가합니다.
이 프로그램은 데이터베이스가 필요하기 때문에, 참고 자료에 Postgres 데이터베이스를 추가할 것입니다. (Heroku에서 무료로 제공합니다.)자원 탭을 클릭하여 검색창에서 댓글을 검색하세요.검색 결과에서 Heroku Postgres를 선택하고 Submit order form을 클릭하여 리소스에 추가합니다.
만약 우리가 첫 번째 부분에서 프로젝트를 세운 곳을 기억한다면, 우리는 환경 변수를 만들었다.히로쿠에 그것들을 추가해야 합니다. 왜냐하면 히로쿠가 없으면 프로그램이 작동하지 않기 때문입니다.설정 탭을 클릭하고 구성 변수로 스크롤한 다음 를 클릭하여 구성 변수를 표시합니다.다음과 같이 프로젝트에서 파일을 열고 구성 변수에 복사하여 붙여 넣습니다.
현재
.env
를 DEBUG
로 설정했기 때문에 배치 과정에서 발생한 모든 오류를 복구할 수 있습니다.나중에 True
로 변경합니다.Github 저장소 설정
Github을 사용하여 응용 프로그램을 배치할 것입니다. 이것은 우리의 임무를 더욱 쉽게 할 것입니다.만약 Github 계정이 없다면, 자신을 위해 here을 만들어 주십시오.Github 계정이 있으면 계정에 로그인하십시오.로그인하면 다음과 같은 화면이 표시됩니다.
New 버튼을 클릭하여 새 저장소를 생성합니다.저장소 이름을 입력하고 를 클릭하여 저장소를 만듭니다.라이브러리를 만들면 다음과 같은 페이지가 표시됩니다.
시스템의 항목으로 이동합니다.시스템에 Git가 설치되어 있는지 확인합니다.없으면 here에서 설치합니다.프로젝트에서 터미널을 열고 다음 명령을 작성합니다.
$ git init
$ git remote add origin <your-repository-url-here>
$ git add .
$ git commit -m "Initial commit"
$ git push origin master
False
를 Github에서 제공하는 URL로 바꿉니다.다음 그림을 참조하십시오.
위 명령을 실행한 후 페이지를 다시 로드합니다.비슷한 출력을 볼 수 있습니다.
항목 변경
우선, 우리는 가상 환경에 의존 항목을 설치해야 한다.활성화되었는지 확인하세요.
$ pip install gunicorn dj-database-url whitenoise psycopg2
$ git init
$ git remote add origin <your-repository-url-here>
$ git add .
$ git commit -m "Initial commit"
$ git push origin master
우선, 우리는 가상 환경에 의존 항목을 설치해야 한다.활성화되었는지 확인하세요.
$ pip install gunicorn dj-database-url whitenoise psycopg2
Gunicorn은 UNIX용 Python WSGI HTTP 서버
dj 데이터베이스 URL은 Heroku 구성 변수에서 데이터베이스 URL을 가져오는 데 사용됩니다.
whitenoise는 정적 파일을 제공하는 데 사용합니다
pyscopg2는 Postgres 데이터베이스에 사용
<your-repository-url-here>
파일에 추가합니다.다음 명령을 사용하여 자동으로 생성할 수 있습니다.$ pip freeze > requirements.txt
다음에 requirements.txt
파일을 만들고 Python 버전을 추가합니다. 다음과 같습니다.python-3.9.7
또한 runtime.txt
파일을 만들고 다음을 추가합니다.# Django #
*.log
*.pot
*.pyc
__pycache__
media
db.sqlite3
# Backup files #
*.bak
# If you are using PyCharm #
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/gradle.xml
.idea/**/libraries
*.iws /out/
# Python #
*.py[cod]
*$py.class
# Distribution / packaging
.Python build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
.pytest_cache/
nosetests.xml
coverage.xml
*.cover
.hypothesis/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery
celerybeat-schedule.*
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# mkdocs documentation
/site
# mypy
.mypy_cache/
# Sublime Text #
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
*.sublime-workspace
*.sublime-project
# sftp configuration file
sftp-config.json
# Package control specific files Package
Control.last-run
Control.ca-list
Control.ca-bundle
Control.system-ca-bundle
GitHub.sublime-settings
# Visual Studio Code #
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history
이것은 Git에게 이 파일들을 무시하라고 알려 줍니다.Heroku의 설정 탭으로 이동하여 Heroku 응용 프로그램 URL을 가져옵니다.
URL에서
.gitignore
및 https://
를 삭제합니다.예를 들어 내 URL은 slash(/)
변경된 후에 내 URL은 다음과 같다: https://grocery-bag-ashutosh.herokuapp.com/.
grocery-bag-ashutosh.herokuapp.com.
파일을 열고 다음과 같이 GroceryBag/settings.py
목록에 URL을 추가합니다.DEBUG = config('DEBUG', default=False, cast=bool)
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'grocery-bag-ashutosh.herokuapp.com']
다음과 같이 Whitenoise 중간부품을 ALLOWED_HOSTS
목록에 추가합니다.MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
# Add Whitenoise middleware here
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
whitenoise 중간부품은 MIDDLEWARE
다음에 포함되어 있음을 주의하십시오다음에
django.middleware.security.SecurityMiddleware
사전 뒤의 데이터베이스 구성을 다음과 같이 업데이트합니다.import dj_database_url
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
또한 정적 루트를 다음과 같이 업데이트합니다.STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles' # Add this line
STATICFILES_DIRS = [
BASE_DIR / "static",
]
응용 프로그램의 루트 디렉토리에 Procfile을 생성하고 다음 행을 추가합니다.web: gunicorn GroceryBag.wsgi --log-file -
이것은 프로세스 형식 DATABASES
과 실행에 필요한 명령을 설명합니다.이 이름web
은 여기서 매우 중요하다.이 프로세스 형식은 Heroku의 HTTP routing 창고에 추가되며, 배치할 때 웹 데이터를 수신합니다.Procfile 파일의 확장자는 없습니다.이제 Github 저장소에 커밋하고 전달할 수 있도록 다음 명령을 사용하도록 충분한 변경 작업을 수행했습니다.
$ git add .
$ git commit -m "Ready for deployment"
$ git push origin master
Heroku에 배포
현재 우리는 이미 Heroku에 우리의 응용 프로그램을 배치할 준비가 완전히 되었다.Heroku 응용 프로그램을 열고 Deploy 탭을 클릭합니다.페이지의 배포 방법 에서 Github 를 선택합니다.저장소를 검색하고 연결 을 클릭하여 선택합니다.
연결이 완료되면 Deploy branch라는 버튼이 표시됩니다.버튼을 클릭하면 배포 프로세스가 시작됩니다.
Heroku는 설치 요구 사항에 언급된 모든 의존 항목을 설치합니다.txt 파일이며, 실행할 때 언급한 Python 버전을 사용합니다.txt 파일.프로세스가 완료되면 다음 성공 메시지가 표시됩니다.
우리의 응용 프로그램은 이미 성공적으로 배치되었다!!
하지만 아직 한 걸음 더 가야 한다.만약 우리가 데이터베이스에 대해 어떤 변경을 할 때마다 데이터베이스를 이전해야 한다는 것을 기억한다면, 우리는 데이터베이스를 이전해야 합니다.마찬가지로 여기서도 데이터베이스를 옮겨야 한다."추가"를 누르고 실행 컨트롤러에서 bash를 실행합니다.
일단 그것을 클릭하면 텍스트 상자를 발견할 수 있습니다.여기에 다음 명령을 작성합니다.
이 명령을 실행하면 데이터베이스 이전이 일어나는 것을 볼 수 있습니다.이것만 있으면, 당신의 응용 프로그램은 이미 성공적으로 배치되었고, 당신은 이미 그것을 테스트할 준비가 되어 있습니다.
어플리케이션 테스트
적용 열기 버튼을 클릭하여 적용을 봅니다.
결론
이것은 이 시리즈에서 우리가 응용 프로그램을 성공적으로 배치한 마지막 블로그이다.이 시리즈의 모든 블로그를 찾을 수 있습니다: https://iread.ga/series/11/grocery-bag-application-using-django
Github 저장소: https://github.com/ashutoshkrris/Grocery-Bag
배포된 어플리케이션 링크: https://grocery-bag-ashutosh.herokuapp.com/
만약 당신에게 어떤 문제가 있으면 언제든지 아래에서 평론을 발표하세요!
Reference
이 문제에 관하여(Django의 쇼핑백 사용(6부) - Heroku에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ashutoshkrris/grocery-bag-using-django-part-6-deployment-on-heroku-5fpb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
적용 열기 버튼을 클릭하여 적용을 봅니다.
결론
이것은 이 시리즈에서 우리가 응용 프로그램을 성공적으로 배치한 마지막 블로그이다.이 시리즈의 모든 블로그를 찾을 수 있습니다: https://iread.ga/series/11/grocery-bag-application-using-django
Github 저장소: https://github.com/ashutoshkrris/Grocery-Bag
배포된 어플리케이션 링크: https://grocery-bag-ashutosh.herokuapp.com/
만약 당신에게 어떤 문제가 있으면 언제든지 아래에서 평론을 발표하세요!
Reference
이 문제에 관하여(Django의 쇼핑백 사용(6부) - Heroku에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ashutoshkrris/grocery-bag-using-django-part-6-deployment-on-heroku-5fpb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Django의 쇼핑백 사용(6부) - Heroku에 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ashutoshkrris/grocery-bag-using-django-part-6-deployment-on-heroku-5fpb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)