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

Как легко развернуть приложение Django на Heroku

Это простой пошаговый учебник о том, как развернуть приложения Django в Heroku.

Автор оригинала: Ekwenugo Mirabel.

Heroku-это облачная платформа на основе контейнеров для развертывания, управления и масштабирования приложений. Несмотря на то, что существуют и другие подобные платформы, такие как OpenShift от Red Hat, Windows Azure, Amazon Web Services, Google App Engine и т. Д., Heroku выделяется тем, что он довольно прост и очень прост в работе. Он также поставляется с бесплатным пакетом для небольших приложений.

Развертывание приложения Django на Heroku может быть очень сложным. Даже со всеми учебными пособиями в Интернете это все равно немного сбивает с толку. Иногда вы сталкиваетесь с определенными ошибками, которые не понимаете. Этот пост научит вас простым шагам, которым следует следовать при развертывании приложения на Heroku.

В этом посте я предполагаю, что вы хорошо разбираетесь в Django и создании приложений Django.

Давайте Начнем

Внутри вашего терминала активируйте virtualenv для проекта и запустите pip install dj-database-url gunicorn white noise . Это позволит установить три разных пакета. Во-первых, dj-database-url настроит адаптер базы данных в проекте. Мы будем запускать его на Gunicorn в Heroku — вот почему мы установили gunicorn, и whitenoise будет обслуживать наши статические файлы на Heroku.

Шаг 1: Первое, что вам нужно, это requirements.txt файл. Этот файл важен, потому что он сообщает Heroku о различных библиотеках и пакетах, которые необходимо установить для запуска вашего приложения. Если у вас нет этого файла, вы можете просто зайти в свой терминал (убедитесь, что вы находитесь в virtualenv для проекта) и выполнить следующую команду в корневом каталоге вашего приложения: pip freeze >> requirements.txt . Эта команда поместит все библиотеки, установленные в данный момент, в новый файл с именем requirements.txt .

Шаг 2: Поскольку Heroku работает на Postgres, нам нужно будет предоставить для него адаптер. С вашего терминала запустите pip install psycopg2 или просто добавьте psycopg2==2.6.2 в requirements.txt файл и запустите pip install .

Шаг 3: Следующее, что вам понадобится, – это файл Proc . Это просто говорит Героку, что нужно запускать. Создайте файл в корневом каталоге вашего проекта и назовите его Профиль . Откройте его с помощью текстового редактора или в командной строке и вставьте в него следующее: web: gunicorn xyz.wsgi . Создайте файл с именем xyz.wsgi , вы можете изменить xyz на имя вашего приложения. Убедитесь, что к нему добавлено расширение .wsgi . Это подскажет Heroku запустить gunicorn с нашим файлом .wsgi .

Шаг 4: В нашем settings.py файл, нам нужно установить DEBUG в False и изменить ALLOWED_HOSTS на [‘*’], так как мы еще не знаем ваш URL Heroku.

Шаг 5: В корневом каталоге создайте файл и назовите его runtime.txt . Этот файл подскажет Heroku, с какой версией Python запускать наше приложение. Внутри файла вставьте python-2.7.10 или любую версию python, которую вы используете.

Шаг 6: В нашем settings.py файл, замените объект БАЗЫ ДАННЫХ следующим кодом и сохраните:

  import dj_database_url

  DATABASES = {
      'default': dj_database_url.config(
          default='sqlite:////{0}'.format(os.path.join(BASE_DIR, 'db.sqlite3'))
      )
  }

Это позволит нам продолжать использовать нашу локальную базу данных SQLite, используя там базу данных Heroku.

Шаг 7: наизнанку xyz.wsgi файл (или любой другой wsgi.py файл называется), добавьте следующую строку и сохраните:

  from whitenoise.django import DjangoWhiteNoise
  application = DjangoWhiteNoise(application)

Героку

Шаг 1: Вам нужно будет установить пояс инструментов Heroku, если у вас его еще нет. Перейти к Heroku Toolbelt для установки.

Шаг 2: Создайте бесплатную учетную запись Heroku здесь .

Шаг 3: Аутентифицируйте свою учетную запись heroku, запустив heroku login на своем терминале.

Шаг 4: Запустите heroku create <ваше имя приложения> на вашем терминале. Вы можете просто запустить heroku create , и Heroku даст вашему приложению случайное имя.

Шаг 5: Heroku использует git для своих развертываний. Вы можете пойти дальше и запустить git add . и git commit <сообщение о фиксации> на вашем терминале.

Шаг 6: Наконец, вы можете развернуть Heroku, запустив git push heroku master на своем терминале.

Шаг 7: Вы можете сказать Heroku, чтобы запустить этот веб-процесс, запустив heroku ps:scale на своем терминале.

Шаг 8: Поскольку мы создали новую/пустую базу данных на Heroku, мы запустим миграцию. На вашем терминале введите heroku run python manage.py перенесите , а затем создайте суперпользователя администратора django heroku run python manage.py создает суперпользователя .

Теперь вы можете посетить свое приложение в браузере, выполнив команду heroku open на терминале.

Вот и все!

Если вам интересно узнать больше о развертывании приложений на Heroku, вот статья о развертывании приложения Crystal на Heroku и о том, как запускать Python и Ruby на Heroku!