Skip to content

github-main-user/django-stripe

Repository files navigation

Django-Stripe

Это реализация тестового задания по интеграции платежной системы Stripe с использованием Django. Проект представляет собой веб-сервис, который позволяет просматривать товары и оплачивать их через Stripe Checkout.

Реализованный функционал

  • Модель Item: Django-модель для товара с полями: название, описание, цена и валюта.
  • Страница товара: Динамическая страница для каждого товара с кнопкой "Buy".
  • Интеграция со Stripe:
    • Создание платежной сессии (Stripe Checkout Session) для выбранного товара.
    • Редирект на страницу оплаты Stripe.
  • Панель администратора: Возможность управлять товарами через стандартную админ-панель Django.
  • Поддержка нескольких валют: Оплата происходит в валюте, указанной для товара (USD, EUR, RUB).
  • Конфигурация через переменные окружения: Безопасное управление ключами и настройками.
  • Запуск с помощью Docker: Проект полностью контейнеризирован для упрощения развертывания и запуска.

Технологический стек

  • Бэкенд: Python, Django, Gunicorn
  • База данных: PostgreSQL
  • Платежная система: Stripe API
  • Контейнеризация: Docker, Docker Compose
  • Управление зависимостями: uv

Установка и запуск

1. Конфигурация

Перед запуском необходимо сконфигурировать переменные окружения.

  1. Скопируйте файл .env.example в .env:

    cp .env.example .env
  2. Откройте файл .env и заполните его своими данными:

    • SECRET_KEY: Секретный ключ Django. Можно сгенерировать новый.
    • DEBUG: True для разработки, False для продакшена.
    • ALLOWED_HOSTS: Список разрешенных хостов (например, localhost,127.0.0.1).
    • DB_*: Настройки для подключения к PostgreSQL.
    • STRIPE_SECRET_KEY: Секретный ключ Stripe (sk_test_...).
    • STRIPE_PUBLISHABLE_KEY: Публичный ключ Stripe (pk_test_...).

2. Запуск с помощью Docker (рекомендуемый способ)

Убедитесь, что у вас установлены Docker и Docker Compose.

  1. Склонируйте репозиторий:

    git clone https://github.com/github-main-user/django-stripe.git
    cd django-stripe
  2. Запустите проект с помощью Docker Compose:

    docker commpose up --build

    Команда соберет образы, запустит контейнеры с базой данных и веб-приложением, а также применит миграции.

  3. Приложение будет доступно по адресу http://localhost:8000.

3. Локальный запуск (без Docker)

  1. Склонируйте репозиторий и перейдите в директорию проекта.

  2. Установите uv и создайте виртуальное окружение:

    pip install uv
    uv venv
    source .venv/bin/activate
  3. Установите зависимости:

    uv pip install -r requirements.txt

    (Примечание: если requirements.txt отсутствует, используйте uv pip install django gunicorn "psycopg[binary]" python-decouple stripe)

  4. Примените миграции:

    python manage.py migrate
  5. Запустите сервер для разработки:

    python manage.py runserver

Использование

Панель администратора

  1. Для доступа к панели администратора необходимо создать суперпользователя:

    # Для Docker
    docker commpose exec web python manage.py createsuperuser
    
    # Для локального запуска
    python manage.py createsuperuser
  2. Панель администратора будет доступна по адресу http://localhost:8000/admin/. Здесь вы можете добавлять и редактировать товары.

API и страницы

  • Страница товара: GET /item/<id>/

    • Отображает HTML-страницу с информацией о товаре и кнопкой "Buy".
    • Пример: http://localhost:8000/item/1/
  • Создание платежной сессии: GET /buy/<id>/

    • Внутренний эндпоинт, который вызывается JavaScript-кодом со страницы товара.
    • Возвращает session_id для редиректа на страницу оплаты Stripe.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published