Рубрики
Без рубрики

Самый простой способ развертывания приложения Django

Я покажу вам, как развернуть приложение Django в Heroku.

Автор оригинала: Ousseynou Diop.

Вступление

Heroku-это платформа облачных приложений, она облегчает развертывание веб-приложения. Они поддерживают несколько языков программирования, включая Python.

Установите Heroku Toolbelt

Чтобы установить heroku Toolkit Зарегистрируйтесь в heroku , Затем установите Heroku Toolbelt это очень мощный инструмент командной строки, который поможет вам управлять вашим приложением. После установки панели инструментов откройте терминал/CMD и войдите в свою учетную запись:

$ heroku login
Enter your Heroku credentials.
Email: your email
Password (typing will be hidden):
Authentication successful.

Подготовка нашей заявки

поместите в свое приложение

$ cd my-application/

Вот список вещей, которые вам, вероятно, потребуется добавить в свой проект:

  • Добавьте профиль в корень проекта;
  • Добавить requirements.txt файл со всеми требованиями в корневом каталоге проекта;
  • Добавьте Гуникорн в requirements.txt;
  • А runtime.txt чтобы указать правильную версию Python в корне проекта;
  • Настройте белый шум для обслуживания статических файлов.

Профиль

  • Создайте файл с именем Procfile в корне проекта
  • Добавьте следующее содержимое: web: gunicorn my-application.wsgi --log-file - Примечание: измените my-application с именем вашего проекта Django.

В requirements.txt

Выполните эту команду, в этой команде будут перечислены все зависимости:

$ pip freeze > requirements.txt
You should see somthing like this :
dj-database-url==version
Django==version
gunicorn==version
psycopg2==version
psycopg2-binary==version
pytz==version
whitenoise==version

В runtime.txt

Создайте файл с именем runtime.txt в корне проекта и поместите конкретную версию Python, которую использует ваш проект: python 3.8

Настройка Статических Ресурсов

Настройте параметры, связанные со СТАТИКОЙ, на settings.py:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]

Настройка Whitenoise

Установка белого шума

$ pip install whitenoise

Добавьте Белый шум в приложение Django в wsgi.py файл:

"""
WSGI config for repertoire project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
"""
import os
from whitenoise.django import DjangoWhiteNoise
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my-application.settings')
application = get_wsgi_application()
application = DjangoWhiteNoise(application)

Обновите settings.py

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

Добавьте промежуточное программное обеспечение белого шума в верхней части списка промежуточного программного обеспечения в settings.py

Развертывание приложения

Обновление конфигурации базы данных в settings.py (в нижней части файла)

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

Создайте приложение в Heroku из терминала

$ heroku create myapplication
Creating ⬢ myapplication... done
https://myapplication.herokuapp.com/ | https://git.heroku.com/myapplication.git

Выберите любое имя для вашего приложения. Heroku сообщит вам, если имя уже существует

Добавьте доменное имя вашего приложения в ALLOWED_HOSTS settings.py.

ALLOWED_HOSTS = ['myapplication.herokuapp.com']

Инициализируйте Git и подключите новое приложение (или существующее) к удаленному репозиторию Heroku Git и нажмите приложение. в вашем терминале/CMD:

$ git init
$ heroku git:remote -a myapplication
$ git add .
$ commit -m "Initial commit"
$ git push heroku master

Если вы получите сообщение об ошибке с collectstatic, просто отключите его, проинструктировав Heroku игнорировать запуск manage.py команда collecstatic в процессе развертывания.

$ heroku config:set     DISABLE_COLLECTSTATIC=1  

Затем беги:

$ git push heroku master

Перенос базы данных:

$ heroku run python manage.py migrate

Дайте мне знать в разделе комментариев, если у вас есть какие-либо ошибки.

Спасибо, что прочитали.