Проект предназначен для публикации рецептов приготовления блюд. Аутентифицированные пользователи могут подписываться на авторов, добавлять рецепты в избранное и в список покупок. Список ингредиентов, добавленных в список покупок рецептов, можно скачать файлом. Гостям сайта доступен просмотр рецептов.
- Python 3.9
- Django
- Django REST Framework (DRF)
SQLite или Postgres.
Для использования Postgres в качестве СУБД, в файле .env, задайте значение переменной окружения DBMS=postgres.
SPA приложение.
React.
Клонируйте репозиторий:
git clone https://github.com/kom-ae/foodgram.git
Перейдите в директорию foodgram:
cd foodgram
Создайте файл с именем '.env', пропишите в нем переменные и присвойте им значения. Пример заполнения '.env' файла приведен в конце.
Запустите контейнеры командой:
docker compose -f docker-compose.yml up -d
Применение миграций и сбор статики выполняется автоматически.
Веб страница проекта будет доступна по адресу
Веб страница админки проекта будет доступна по адресу
Для входа в админку создайте супер пользователя, для этого:
подключитесь к контейнеру с бэкэндом:
docker compose exec -it backend bash
создайте суперпользователя:
python manage.py createsuperuser
Для первоначального наполнения данными смотрите соответствующий раздел ниже.
Клонируйте репозиторий:
git clone https://github.com/kom-ae/foodgram.git
Перейдите в директорию foodgram:
cd foodgram
Cоздайте и активируйте виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
Установите зависимости из файла requirements.txt:
python3 -m pip install --upgrade pip
pip install -r backend/requirements.txt
Выполните миграции:
python3 backend/manage.py migrate
Для локального запуска будет использована СУБД SQLite, которая была создана шагом выше при выполнении миграций. Это позволит сократить время на запуске проекта.
создайте суперпользователя:
python backend/manage.py createsuperuser
Перейдите в директорию frontend:
cd frontend
Запустите установку зависимостей npm:
npm install
Запустите сборку фронтэнда:
npm run build
Запустите frontend:
npm run start
Перейдите в папку с бэкэндом и запустите его:
cd ../backend
python3 manage.py runserver
Веб страница проекта будет доступна по адресу
Веб страница админки проекта будет доступна по адресу
Для первоначального наполнения данными смотрите соответствующий раздел ниже.
На удаленном сервере создайте директорию foodgram. В указанную директорию скопируйте подготовленный .env файл и docker-compose.production.yml, для этого:
Находясь в домашней директории пользователя запустите команду:
mkdir foodgram
Перейдите в директорию foodgram:
cd foodgram
Файлы .env и docker-compose.production.yml скопируйте с использованием команды scp или вставкой содержимого через доступный редактор на сервере. Пример заполнения '.env' файла приведен в конце. Установите переменную DBMS=postgres, для использования PostgreSQL в качестве СУБД.
Запустите проект командой:
docker compose -f docker-compose.production.yml up -d
Для входа в админку создайте супер пользователя, для этого:
подключитесь к контейнеру с бэкэндом:
docker compose exec -it backend bash
создайте суперпользователя:
python manage.py createsuperuser
Настройте nginx хоста на проброс запросов к проекту на порт 7000.
Веб страница проекта будет доступна по адресу
http://<domain_name_Or_IP_address>
Веб страница админки проекта будет доступна по адресу
http://<domain_name_Or_IP_address>:8000/admin/
Для первоначального наполнения данными смотрите раздел ниже.
Загрузка ингредиентов и тегов выполняется через админку.
Войдите в админку по адресу соответствующему типу развертывания проекта. Используйте учетные данные созданного супер пользователя.
Переключитесь на представление модели "Ингредиенты" или "Тэги", нажмите кнопку "Импорт" и выберите соответствующий модели файл (csv, json) для загрузки. Готовые файлы расположены в папке 'data' проекта.
POSTGRES_DB=name_db # Имя базы данных
POSTGRES_USER=user_db # Пользователь базы данных
POSTGRES_PASSWORD=password_user_db # Пароль пользователя базы данных
DB_HOST=name_host_db # Имя хоста с СУБД postgres
DB_PORT=5432 # Порт БД
SECRET_KEY='' # секретный ключ для Django
DEBUG=True # Режим дебага
ALLOWED_HOSTS=127.0.0.1,localhost # список разрешенных хостов для подключения к Django
#Database Management System
DBMS=postgres # СУБД
Автор проекта: Александр Комаров