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

Heroku: Как развернуть приложение Django с Postgres за 5 минут!

Heroku – это платформа как платформа Service (PAAS), которая позволяет веб -разработчикам разрабатывать, создавать, … Помечено Джанго, Хероку, Питоном, Постгрес.

Хероку – это Платформа как сервис (PAAS) Платформа, которая позволяет веб -разработчикам разрабатывать, создавать, запускать и управлять своими веб -приложениями полностью в облаке. Быть предоставленным в качестве сервиса не только оборудования, но и платформы, которая разделяет само аппаратное обеспечение и позволяет вам наслаждаться функциями, которые позволяют вам выполнять автоматическое балансирование, управление развертыванием и многое другое.

Если у вас еще нет учетной записи с Heroku, вы можете просто зарегистрироваться сейчас, отправившись в heroku.com , полностью бесплатно зарегистрироваться и начать использовать свои услуги сразу.

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

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

Шаг 1 : Создайте приложение Django (Это если вы еще не создали его).

Шаг 2 : Скачать и установить Интерфейс командной строки Heroku Анкет

Шаг 3 : Откройте свою основную папку проекта в терминале. Создать и активировать новый виртуальная среда (Это если вы еще не используете отдельную виртуальную среду для этого вашего проекта, который вы хотите разместить.

cd main_project_folder
virtualenv venv
source venv/bin/activate

Шаг 4 : Установите зависимости и эти пакеты, которые требуются вашим приложением Django.

pip install django gunicorn whitenoise dj-database-url psycopg2

Шаг 5 : Создайте файл с именем Procfile и добавьте к нему следующую строку.

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

Здесь nameofproject это название папки, которая включает

settings.py 

Приложения Heroku используют файл с именем Procfile без расширений, которые объявляют команды, которые выполняются приложением при запуске приложений. Для получения дополнительной информации о Heroku Procfile, см. → Здесь

Шаг 6 : Создать файл требований Требования.txt

Этот файл требований будет содержать все модули, которые вы использовали в вашем приложении для правильного функционирования а также Да, вам не нужно вручную записывать каждый модуль, который вы использовали, есть команда для этого и ее прямо внизу.

pip freeze > requirements.txt 

Шаг 7 : Создать файл времени выполнения Используйте приведенную ниже команду, чтобы создать текстовый файл времени выполнения в папке корневых проектов

touch runtime.txt

Затем добавьте следующее Python-3.6.7 или любой другой Python Runtime поддерживается Heroku Анкет

Шаг 8 : Инициализируйте репозиторий GIT в корневой папке вашего приложения (если Вы еще этого не сделали). Также добавьте и сохраните изменения, которые вы внесли в GIT.

git init

Добавьте все изменения в GIT, работая

git add .

и совершить изменения их

git commit -m "message" 

Шаг 9 : Войдите в терминал Heroku, запустив

heroku login

Затем создайте свое приложение Heroku, запустив

heroku create

Если вы хотите использовать пользовательское имя, отличное от сгенерированного имени, которое обычно выходит из контекста, вместо этого запустите следующие команды

heroku create nameofapp

Шаг 10 : Теперь давайте изменим настройки.py подайте немного.

Изменить допустимые хосты, добавив thenameofyourapp.herokuapp.com

ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1', 'nameofapp.herokuapp.com']

Вы также можете использовать

ALLOWED_HOSTS = ['*',]

Далее, Set

DEBUG = False

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

Изменить Insted_apps В настройках, добавив

whitenoise.runserver_nostatic

Также Промежуточное программное обеспечение Настройки добавлением

'whitenoise.middleware.WhiteNoiseMiddleware',

Затем добавьте следующее

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Добавлять

import dj_database_url

наверху. После Базы данных раздел добавлять

db_from_env = dj_database_url.config(conn_max_age=600)
DATABASES['default'].update(db_from_env)

Также убедитесь, что ваш файл настроек имеет следующие переменные, установленные Static_url , Static_root , Staticfiles_dirs Соответственно Анкет

Также убедитесь, что переменные медиа -файла установлены.

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'

Совершить изменения и сохранить их в GIT, запустив

git add .

а также

git commit -m "change settings"

Шаг 11 : Добавление и настройка Postgres (тогда это было проблемой … LOL)

Следующие команды будут создавать базу данных PostgreSQL на приложении Heroku для вас и извлекут URL -адрес базы данных.

heroku addons:create heroku-postgresql:hobby-dev
heroku config -s | grep DATABASE_URL

Вы также можете бежать

heroku pg:info

Чтобы получить детали вашей базы данных на Heroku.

Add-on

даст тебе nameofherokudb Анкет Теперь вы также можете подтолкнуть свою локальную базу данных Postgres в Herokudb, запустив

push local database:PGUSER=postgres PGPASSWORD=password  heroku pg:push postgres://name_of_host/name_of_local_database nameOfHerokuDB

Например

PGUSER=postgres PGPASSWORD=mydemopassword heroku pg:push postgres://localhost/myDB  postgresql-convex-12345

** Шаг 12: Отключите команду Heroku Collestatic по умолчанию и нажмите файлы в Heroku.

Вот что -то, что я делаю, чтобы избежать проблем с статичными файлами heroku, я запускаю следующие команды

python manage.py collectstatic

Затем я добавляю и совершаю git, следующий я бегу

heroku config:set DISABLE_COLLECTSTATIC=1
git push heroku master

Вы можете открыть развернутое приложение, запустив

heroku open

Возможные ошибки

  • Если вы еще не установили статический корень в своих настройках Django, вы получите Insablecollectstatic ошибка.
  • Django не обслуживает статические файлы на сервере приложения самостоятельно, поэтому мы должны определить место, где Heroku может сохранить и управлять всеми статическими файлами.
  • Просто добавьте static_root в свой файл настройки. После внесения всех необходимых изменений сделайте коммит и попробуйте натолкнуть
git push heroku master

опять таки.

Это развернуто!

Поздравляю. Если вы столкнетесь с ошибкой во время команды Push, которая обычно приходит, если вы делаете это в первый раз, не волнуются, решение не за горами, вы можете просто прокомментировать свою проблему, или вы можете искать на Stackoverflow Анкет

Оригинал: “https://dev.to/giftedstan/heroku-how-to-deploy-a-django-app-with-postgres-in-5-minutes-5lk”