Современный веб-сайт магазина, построенный на Django с системой пользователей, отзывов, статей и корзины покупок.
Если вы впервые настраиваете проект, выполните следующие шаги:
- Установите PostgreSQL (если не установлен)
- Создайте базу данных и пользователя (см. раздел "Настройка PostgreSQL")
- Обновите настройки в
shop/settings.py - Установите зависимости и запустите проект
- PostgreSQL должен быть установлен и запущен
- Создайте базу данных для проекта
- Настройте пользователя PostgreSQL
Скачайте и установите PostgreSQL с официального сайта: https://www.postgresql.org/download/
-- Подключитесь к PostgreSQL как суперпользователь
psql -U postgres
-- Создайте базу данных
CREATE DATABASE django_shop_db;
-- Создайте пользователя
CREATE USER your_username WITH PASSWORD 'your_password';
-- Дайте права пользователю
GRANT ALL PRIVILEGES ON DATABASE django_shop_db TO your_username;
-- Выйдите
\q# Создание базы данных
sudo -u postgres createdb django_shop_db
# Создание пользователя
sudo -u postgres createuser --interactive your_username
# Установка пароля
sudo -u postgres psql -c "ALTER USER your_username PASSWORD 'your_password';"
# Дать права
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE django_shop_db TO your_username;"Обновите настройки в shop/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'django_shop_db', # Ваша база данных
'USER': 'your_username', # Ваш пользователь
'PASSWORD': 'your_password', # Ваш пароль
'HOST': 'localhost',
'PORT': '5432',
}
}-- 1. Подключитесь к PostgreSQL как суперпользователь
psql -U postgres
-- 2. Создайте пользователя (если нужно)
CREATE USER myuser WITH PASSWORD 'mypassword';
-- 3. Дайте права на базу данных postgres
GRANT ALL PRIVILEGES ON DATABASE postgres TO myuser;
-- 4. Выйдите
\q-- 1. Подключитесь к PostgreSQL
psql -U postgres
-- 2. Создайте базу данных
CREATE DATABASE django_shop_db;
-- 3. Создайте пользователя
CREATE USER myuser WITH PASSWORD 'mypassword';
-- 4. Дайте права
GRANT ALL PRIVILEGES ON DATABASE django_shop_db TO myuser;
-- 5. Выйдите
\q# Для варианта 1 (стандартная база postgres)
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=your_password
# Для варианта 2 (отдельная база)
DB_NAME=django_shop_db
DB_USER=myuser
DB_PASSWORD=mypassword# Перейдите в директорию проекта
cd ...\django_site_kyrs
# Активируйте виртуальное окружение
.\venv\Scripts\Activate.ps1
# Установите зависимости (если не установлены)
pip install -r requirements.txt# Выполните миграции
python manage.py migrate
# Создайте суперпользователя (опционально)
python manage.py createsuperuser# Запустите сервер разработки
python manage.py runserverОткройте браузер и перейдите по адресу: http://127.0.0.1:8000
# Перейдите в директорию проекта
cd /path/to/django_site_kyrs
# Активируйте виртуальное окружение
source venv/bin/activate
# Установите зависимости
pip install -r requirements.txt# Выполните миграции
python manage.py migrate
# Создайте суперпользователя (опционально)
python manage.py createsuperuser# Запустите сервер разработки
python manage.py runserver
# Или используйте готовый скрипт
./run_django.shОткройте браузер и перейдите по адресу: http://127.0.0.1:8000
- Python 3.8+
- pip
- Виртуальное окружение (venv)
- PostgreSQL (база данных)
Django==5.2.6
pillow==11.3.0
psycopg2-binary==2.9.10 # PostgreSQL драйвер
python-dotenv==1.1.1
whitenoise==6.11.0
gunicorn==23.0.0
База данных: PostgreSQL (не SQLite)
django_site_kyrs/
├── 📁 articles/ # Модуль статей
├── 📁 cart/ # Модуль корзины
├── 📁 main/ # Основной модуль (товары/услуги)
├── 📁 review/ # Модуль отзывов
├── 📁 user/ # Модуль пользователей
├── 📁 shop/ # Настройки Django
├── 📁 static/ # Статические файлы (CSS, JS)
├── 📁 templates/ # HTML шаблоны
├── 📄 manage.py # Django управление
├── 📄 requirements.txt # Зависимости
└── 📄 README.md # Документация
Создайте файл .env в корне проекта на основе env.example:
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
# Database Settings
DB_NAME=django_shop_db
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432Проект использует переменные окружения для настройки PostgreSQL. Настройки в shop/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME', 'django_shop_db'),
'USER': os.getenv('DB_USER', 'postgres'),
'PASSWORD': os.getenv('DB_PASSWORD', ''),
'HOST': os.getenv('DB_HOST', 'localhost'),
'PORT': os.getenv('DB_PORT', '5432'),
}
}Настройка через .env файл:
- Скопируйте
env.exampleв.env - Заполните ваши данные базы данных
- Перезапустите Django
Требования для работы:
- PostgreSQL должен быть установлен и запущен
- База данных должна быть создана (см. раздел "Настройка PostgreSQL")
- Пользователь PostgreSQL должен иметь права доступа к базе данных
- Регистрация и авторизация
- Профили пользователей
- Система достижений и прогресса
- Уведомления
- Каталог товаров и услуг
- Корзина покупок
- Детальные страницы товаров
- Система статей
- Отзывы пользователей
- Административная панель
- Адаптивный дизайн
- Современный UI/UX
- Темная/светлая тема
# Запуск сервера
python manage.py runserver
# Создание миграций
python manage.py makemigrations
# Применение миграций
python manage.py migrate
# Создание суперпользователя
python manage.py createsuperuser
# Сбор статических файлов
python manage.py collectstatic# Загрузка категорий прогресса
python manage.py load_progress_categories
# Загрузка достижений
python manage.py load_achievements# Проверка подключения к базе данных
python check_db.py
# Автоматическая настройка базы данных
python setup_db.py# Windows
.\venv\Scripts\Activate.ps1
python manage.py runserver
# Linux/macOS
source venv/bin/activate
python manage.py runserver# Сбор статических файлов
python manage.py collectstatic
# Запуск с Gunicorn
gunicorn shop.wsgi:application# Установите psycopg2 для PostgreSQL
pip install psycopg2-binary-
Убедитесь, что PostgreSQL запущен:
# Windows netstat -an | findstr :5432 # Linux/macOS sudo systemctl status postgresql
-
Проверьте настройки в
shop/settings.py- используйте переменные окружения -
Проверьте, что база данных существует:
-- Подключитесь к PostgreSQL psql -U postgres -- Проверьте список баз данных \l -- Если базы нет, создайте её CREATE DATABASE your_database_name;
-
Проверьте права пользователя:
-- Дайте права пользователю GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_user;
-
Убедитесь, что пароль правильный - проверьте в .env файле
# Применение миграций к PostgreSQL
python manage.py migrate
# Сброс миграций (ОСТОРОЖНО!)
python manage.py migrate --fake-initial# Проверка статуса Django
python manage.py check
# Проверка миграций
python manage.py showmigrations
# Тест подключения к базе данных
python manage.py dbshell
# Специальный скрипт проверки (рекомендуется)
python check_db.pyУбедитесь, что в shop/settings.py правильно указаны:
NAME- имя вашей базы данныхUSER- ваш пользователь PostgreSQLPASSWORD- пароль пользователяHOST- обычно 'localhost'PORT- обычно '5432'
Если у вас возникли проблемы:
- Проверьте, что все зависимости установлены
- Убедитесь, что виртуальное окружение активировано
- Убедитесь, что PostgreSQL запущен и доступен
- Проверьте настройки базы данных в
shop/settings.py - Выполните миграции:
python manage.py migrate - Проверьте подключение:
python manage.py check
Этот проект создан в образовательных целях.
.\venv\Scripts\Activate.ps1 python manage.py clear_admin_log --days 90 — удалить записи старше 90 дней python manage.py clear_admin_log --days 30 — старше 30 дней python manage.py clear_admin_log --all — удалить все записиpsql -U postgres
-- 2. Создайте базу данных CREATE DATABASE django_shop_db;
-- 3. Создайте пользователя CREATE USER myuser WITH PASSWORD 'mypassword';
-- 4. Дайте права GRANT ALL PRIVILEGES ON DATABASE django_shop_db TO myuser;
-- 5. Выйдите \q
#### Настройка в .env файле:
```env
# Для варианта 1 (стандартная база postgres)
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=your_password
# Для варианта 2 (отдельная база)
DB_NAME=django_shop_db
DB_USER=myuser
DB_PASSWORD=mypassword
# Перейдите в директорию проекта
cd ...\django_site_kyrs
# Активируйте виртуальное окружение
.\venv\Scripts\Activate.ps1
# Установите зависимости (если не установлены)
pip install -r requirements.txt# Выполните миграции
python manage.py migrate
# Создайте суперпользователя (опционально)
python manage.py createsuperuser# Запустите сервер разработки
python manage.py runserverОткройте браузер и перейдите по адресу: http://127.0.0.1:8000
# Перейдите в директорию проекта
cd /path/to/django_site_kyrs
# Активируйте виртуальное окружение
source venv/bin/activate
# Установите зависимости
pip install -r requirements.txt# Выполните миграции
python manage.py migrate
# Создайте суперпользователя (опционально)
python manage.py createsuperuser# Запустите сервер разработки
python manage.py runserver
# Или используйте готовый скрипт
./run_django.shОткройте браузер и перейдите по адресу: http://127.0.0.1:8000
- Python 3.8+
- pip
- Виртуальное окружение (venv)
- PostgreSQL (база данных)
Django==5.2.6
pillow==11.3.0
psycopg2-binary==2.9.10 # PostgreSQL драйвер
python-dotenv==1.1.1
whitenoise==6.11.0
gunicorn==23.0.0
База данных: PostgreSQL (не SQLite)
django_site_kyrs/
├── 📁 articles/ # Модуль статей
├── 📁 cart/ # Модуль корзины
├── 📁 main/ # Основной модуль (товары/услуги)
├── 📁 review/ # Модуль отзывов
├── 📁 user/ # Модуль пользователей
├── 📁 shop/ # Настройки Django
├── 📁 static/ # Статические файлы (CSS, JS)
├── 📁 templates/ # HTML шаблоны
├── 📄 manage.py # Django управление
├── 📄 requirements.txt # Зависимости
└── 📄 README.md # Документация
Создайте файл .env в корне проекта на основе env.example:
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
# Database Settings
DB_NAME=django_shop_db
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432Проект использует переменные окружения для настройки PostgreSQL. Настройки в shop/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME', 'django_shop_db'),
'USER': os.getenv('DB_USER', 'postgres'),
'PASSWORD': os.getenv('DB_PASSWORD', ''),
'HOST': os.getenv('DB_HOST', 'localhost'),
'PORT': os.getenv('DB_PORT', '5432'),
}
}Настройка через .env файл:
- Скопируйте
env.exampleв.env - Заполните ваши данные базы данных
- Перезапустите Django
Требования для работы:
- PostgreSQL должен быть установлен и запущен
- База данных должна быть создана (см. раздел "Настройка PostgreSQL")
- Пользователь PostgreSQL должен иметь права доступа к базе данных
- Регистрация и авторизация
- Профили пользователей
- Система достижений и прогресса
- Уведомления
- Каталог товаров и услуг
- Корзина покупок
- Детальные страницы товаров
- Система статей
- Отзывы пользователей
- Административная панель
- Адаптивный дизайн
- Современный UI/UX
- Темная/светлая тема
# Запуск сервера
python manage.py runserver
# Создание миграций
python manage.py makemigrations
# Применение миграций
python manage.py migrate
# Создание суперпользователя
python manage.py createsuperuser
# Сбор статических файлов
python manage.py collectstatic# Загрузка категорий прогресса
python manage.py load_progress_categories
# Загрузка достижений
python manage.py load_achievements# Проверка подключения к базе данных
python check_db.py
# Автоматическая настройка базы данных
python setup_db.py# Windows
.\venv\Scripts\Activate.ps1
python manage.py runserver
# Linux/macOS
source venv/bin/activate
python manage.py runserver# Сбор статических файлов
python manage.py collectstatic
# Запуск с Gunicorn
gunicorn shop.wsgi:application# Установите psycopg2 для PostgreSQL
pip install psycopg2-binary-
Убедитесь, что PostgreSQL запущен:
# Windows netstat -an | findstr :5432 # Linux/macOS sudo systemctl status postgresql
-
Проверьте настройки в
shop/settings.py- используйте переменные окружения -
Проверьте, что база данных существует:
-- Подключитесь к PostgreSQL psql -U postgres -- Проверьте список баз данных \l -- Если базы нет, создайте её CREATE DATABASE your_database_name;
-
Проверьте права пользователя:
-- Дайте права пользователю GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_user;
-
Убедитесь, что пароль правильный - проверьте в .env файле
# Применение миграций к PostgreSQL
python manage.py migrate
# Сброс миграций (ОСТОРОЖНО!)
python manage.py migrate --fake-initial# Проверка статуса Django
python manage.py check
# Проверка миграций
python manage.py showmigrations
# Тест подключения к базе данных
python manage.py dbshell
# Специальный скрипт проверки (рекомендуется)
python check_db.pyУбедитесь, что в shop/settings.py правильно указаны:
NAME- имя вашей базы данныхUSER- ваш пользователь PostgreSQLPASSWORD- пароль пользователяHOST- обычно 'localhost'PORT- обычно '5432'
Если у вас возникли проблемы:
- Проверьте, что все зависимости установлены
- Убедитесь, что виртуальное окружение активировано
- Убедитесь, что PostgreSQL запущен и доступен
- Проверьте настройки базы данных в
shop/settings.py - Выполните миграции:
python manage.py migrate - Проверьте подключение:
python manage.py check
Этот проект создан в образовательных целях.