Интернет-магазин c каталогом товаров, корзиной и возможностью оформления заказов.
- каталог товаров пополняемый через админку;
- корзина реализована с помощью
сессий Django; - в админке магазина динамически формируются счета в
PDF; - упарвление и выгрузка заказов в
CSV; - после создания заказа на электронную почту пользователей отправляется
pdf-счетв асинхронном режиме черезCelery; - реализована система скидок (купонов) и рекомендация товаров с помощью
Redis; - настроена локализация на 2 языка:
русскийианглийсикй.
Эти инструкции помогут вам создать копию проекта и запустить ее на локальном компьютере для целей разработки и тестирования.
Перед тем, как начать:
-
Если вы не пользуетесь
Python 3, вам нужно будет установить инструментvirtualenvпри помощиpip install virtualenv. Если вы используетеPython 3, у вас уже должен быть модуль venv, установленный в стандартной библиотеке. -
Установите
Redis. Воспользуйтесь инструкциями с официального сайта или командами:
wget http://download.redis.io/releases/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable && make
Запустите сервер Redis командой src/redis-server из папки redis-stable
- Для работы c
Celeryнеобходим посредник (брокер). УстнаовитеRabbitMQ- он является рекомендуемым брокером дляCelery
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install rabbitmq-server
Запустите сервер RabbitMQ
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
Подробнее об уствновке на официальном сайте RabbitMQ
- Создайте на своем компютере папку проекта
mkdir myshopи перейдите в нееcd myshop - Склонируйте этот репозиторий в текущую папку
git clone https://github.com/SergePogorelov/myshop.git . - Создайте виртуальное окружение
python3 -m venv venv - Активируйте виртуальное окружение
source venv/bin/activate - Установите зависимости
pip install -r requirements.txt - Накатите миграции
python manage.py migrate - Создайте суперпользователя Django
python manage.py createsuperuser --username admin --email 'admin@example.com' - Запустите сервер разработки Django
python manage.py runserver - Откройте другую консоль и запустите процесс
Celeryиз папки проекта с помощью командыcelery -A myshop worker -l info - Для локального тестирования вы можете загрузить данные из фикстур
python manage.py loaddata fixtures.json
Мониторинг Celery
Для отслеживаия выполнения задач будем использовать Flower.
Запустите Flower из папки проекта командой celery -A myshop flower и откройте в браузере http://localhost:5555/dashboard
Этот проект лицензируется по лицензии BSD 3-Clause License - см. LICENSE.md для получения подробной информации.
По книге Антонио Меле: Django 2 в примерах