- Python 3.6
- Django 1.11
- PostgreSQL
- Redis
- Celery
Хостинг проекта осуществляется на Heroku
Рабочая версия сайта: horoomy-webapp.herokuapp.com
Аккаунт от админки: horoomy2017@gmail.com:horoomy-admin
- В папке
configнаходятся все файлы, связанные с конфигурацией проектаrequirements- список необходимых Python-пакетовsettings- настройки Django-проектаurls.py- базовые URL сайтаwsgi.py- инициализация WSGIcelery.py- инициализация Celery
- В папке
horoomy- Django-приложения, шаблоны и статические файлы
Конфигурация в папках requirements и settings разбита на 3 файла: общая (base), для разработки (dev) и для деплоя (pro)
- PostgreSQL теперь используется не только для деплоя, но и для разработки
- Убран костыль для
manage.py, выбирающий нужные настройки в зависимости от введенных команд - Упорядочены настройки Django-проекта (
base.py) - В связи с изменением структуры проекта, кастомные Django-приложения теперь следует прописывать с префиксом
horoomy. - Кое-какие настройки теперь подтягиваются из переменных окружения (см. ниже)
- Все операции записи в БД во вьюхах теперь выполняются одной транзакцией
- Установить нужную версию Python
- Рекомндуется: установить virtualenvwrapper (или virtualenvwrapper-win) и настроить его
- Установить нужные Python-пакеты:
pip install -r config/requirements/dev.txt
- Установить PostgreSQL и настроить ее
- Настроить переменные окружения:
DJANGO_SETTINGS_MODULE = 'config.settings.dev'
DATABASE_URL = 'postgres://USER:PASSWORD@HOST:PORT/NAME'
Опционально:
DEBUG = True / False (по умолчанию True)
DJANGO_EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
- По желанию вынести настройку переменных окружения в postactivate/postdeactivate скрипты virtualenv
- Выполнить команды
manage.py:
python manage.py makemigrations (только при необходимости)
python manage.py migrate
python manage.py createsuperuser
- Запустить сервер PostgreSQL
- Запустить Celery-beat и Celery-worker:
python manage.py celery beat --app=config.celery.app
python manage.py celery worker --app=config.celery.app
- Запустить web-сервер:
python manage.py runserver 80