Хероку – это Платформа как сервис (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”