Интернет-магазин 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 '[email protected]'
- Запустите сервер разработки 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 в примерах