# TeaProject **Repository Path**: bianruifeng/tea-project ## Basic Information - **Project Name**: TeaProject - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-05 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 茶叶电商平台 API 项目 基于 Django + Django REST Framework 开发的茶叶电商平台后端 API 系统,为小程序提供完整的电商功能支持。 ## 项目信息 - **项目名称**: TeaProject - **技术栈**: Django 6.0 + Django REST Framework + MySQL - **开发时间**: 2025年 - **开发者**: 浮浮酱 ฅ'ω'ฅ ## 功能特性 ### 已实现功能 ✅ **用户模块** - 用户注册 - 用户登录 - 用户信息管理 - 密码修改 - 收货地址管理(增删改查、默认地址) ✅ **商品模块** - 茶叶分类管理(支持多级分类) - 商品列表展示(支持分页、筛选、搜索) - 商品详情查看 - 热门商品推荐 - 精选商品推荐 ✅ **购物车模块** - 添加商品到购物车 - 修改购物车商品数量 - 删除购物车商品 - 批量添加商品 - 清空购物车 - 查看购物车 ✅ **订单模块** - 创建订单 - 订单支付(模拟支付) - 订单查询(按状态筛选) - 订单详情查看 - 取消订单 - 确认收货 ✅ **后台管理** - Django Admin 管理界面 - 用户管理 - 商品管理 - 分类管理 - 订单管理 - 地址管理 ## 快速开始 ### 1. 环境要求 - Python 3.12+ - MySQL 5.7+ - pip ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 数据库配置 在 `TeaProject/settings.py` 中配置数据库连接: ```python DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "teadb", "USER": "root", "PASSWORD": "123456", "HOST": "127.0.0.1", "PORT": "3306", } } ``` ### 4. 创建数据库 ```sql CREATE DATABASE teaDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 5. 执行数据库迁移 ```bash python manage.py makemigrations python manage.py migrate ``` ### 6. 创建超级管理员 ```bash python manage.py createsuperuser ``` 默认管理员账号: - 用户名: `admin` - 密码: `admin123` ### 7. 启动开发服务器 ```bash python manage.py runserver ``` 服务器将在 `http://127.0.0.1:8000/` 启动 ## API 接口文档 ### 基础信息 - **Base URL**: `http://127.0.0.1:8000/api/` - **认证方式**: Session Authentication(Django 默认) - **数据格式**: JSON ### 用户模块 #### 1. 用户注册 - **URL**: `POST /api/register/` - **请求参数**: ```json { "username": "testuser", "password": "password123", "password_confirm": "password123", "email": "test@example.com" } ``` - **响应**: ```json { "message": "注册成功", "user": { ... } } ``` #### 2. 用户登录 - **URL**: `POST /api/login/` - **请求参数**: ```json { "username": "testuser", "password": "password123" } ``` - **响应**: ```json { "message": "登录成功", "user": { ... } } ``` #### 3. 获取用户信息 - **URL**: `GET /api/profile/` - **需要认证**: 是 #### 4. 修改用户信息 - **URL**: `PUT /api/profile/` - **需要认证**: 是 - **请求参数**: ```json { "nickname": "昵称", "phone": "手机号", "avatar": "头像URL", "gender": "male", "birthday": "1990-01-01" } ``` #### 5. 修改密码 - **URL**: `POST /api/change-password/` - **需要认证**: 是 - **请求参数**: ```json { "old_password": "旧密码", "new_password": "新密码" } ``` ### 地址管理 #### 1. 地址列表 - **URL**: `GET /api/addresses/` - **需要认证**: 是 #### 2. 创建地址 - **URL**: `POST /api/addresses/` - **需要认证**: 是 - **请求参数**: ```json { "receiver_name": "收货人姓名", "receiver_phone": "联系电话", "province": "省份", "city": "城市", "district": "区/县", "detail_address": "详细地址", "postal_code": "邮政编码", "is_default": false } ``` #### 3. 获取默认地址 - **URL**: `GET /api/addresses/default/` - **需要认证**: 是 ### 商品模块 #### 1. 分类列表 - **URL**: `GET /api/categories/` - **需要认证**: 否 #### 2. 商品列表 - **URL**: `GET /api/products/` - **查询参数**: - `category`: 分类ID - `tea_type`: 茶叶类型(green/black/oolong/white/dark/puer/flower) - `min_price`: 最低价格 - `max_price`: 最高价格 - `is_hot`: 是否热门(true/false) - `search`: 搜索关键词 - `page`: 页码 - `page_size`: 每页数量 #### 3. 商品详情 - **URL**: `GET /api/products/{id}/` - **需要认证**: 否 #### 4. 热门商品 - **URL**: `GET /api/products/hot/` - **需要认证**: 否 #### 5. 精选商品 - **URL**: `GET /api/products/featured/` - **需要认证**: 否 ### 购物车模块 #### 1. 购物车列表 - **URL**: `GET /api/cart/` - **需要认证**: 是 #### 2. 添加到购物车 - **URL**: `POST /api/cart/` - **需要认证**: 是 - **请求参数**: ```json { "product": 1, "quantity": 2 } ``` #### 3. 修改购物车商品数量 - **URL**: `PUT /api/cart/{id}/` - **需要认证**: 是 - **请求参数**: ```json { "quantity": 3 } ``` #### 4. 删除购物车商品 - **URL**: `DELETE /api/cart/{id}/` - **需要认证**: 是 #### 5. 清空购物车 - **URL**: `DELETE /api/cart/clear/` - **需要认证**: 是 #### 6. 购物车商品数量 - **URL**: `GET /api/cart/count/` - **需要认证**: 是 ### 订单模块 #### 1. 订单列表 - **URL**: `GET /api/orders/` - **需要认证**: 是 - **查询参数**: - `status`: 订单状态(pending/paid/shipped/completed/cancelled) - `page`: 页码 - `page_size`: 每页数量 #### 2. 创建订单 - **URL**: `POST /api/orders/` - **需要认证**: 是 - **请求参数**: ```json { "address_id": 1, "remark": "订单备注", "items": [ { "product_id": 1, "quantity": 2 } ] } ``` #### 3. 订单详情 - **URL**: `GET /api/orders/{id}/` - **需要认证**: 是 #### 4. 支付订单 - **URL**: `POST /api/orders/{id}/pay/` - **需要认证**: 是 #### 5. 取消订单 - **URL**: `POST /api/orders/{id}/cancel/` - **需要认证**: 是 #### 6. 确认收货 - **URL**: `POST /api/orders/{id}/confirm/` - **需要认证**: 是 ## 数据模型 ### Category(茶叶分类) - 支持多级分类结构 - 包含分类名称、图标、描述、排序等字段 ### Product(商品) - 商品基本信息(名称、分类、价格、库存等) - 茶叶类型、产地、品牌等属性 - 热门、精选标记 ### Address(收货地址) - 用户收货地址管理 - 支持设置默认地址 ### Cart(购物车) - 用户购物车商品记录 - 自动合并相同商品 ### Order(订单) - 订单基本信息 - 订单状态管理(待支付、待发货、待收货、已完成、已取消) - 收货地址快照 ### OrderItem(订单明细) - 订单商品明细 - 商品信息快照 ### UserProfile(用户信息) - 用户扩展信息 - 昵称、头像、积分、余额等 ## 项目结构 ``` TeaProject/ ├── TeaProject/ # 项目配置目录 │ ├── settings.py # 项目配置 │ ├── urls.py # 主 URL 配置 │ └── wsgi.py # WSGI 配置 ├── tea/ # 主应用目录 │ ├── models.py # 数据模型 │ ├── views.py # 视图函数 │ ├── serializers.py # 序列化器 │ ├── admin.py # Admin 配置 │ └── urls.py # 应用 URL 配置 ├── static/ # 静态文件目录 ├── media/ # 媒体文件目录 │ ├── products/ # 商品图片 │ ├── avatars/ # 用户头像 │ └── category_icons/ # 分类图标 ├── manage.py # Django 管理脚本 ├── requirements.txt # 项目依赖 └── README.md # 项目文档 ``` ## 技术特点 ### 遵循的设计原则 - **KISS**: 代码简洁直观,避免不必要的复杂性 - **DRY**: 通过序列化器、视图集等避免代码重复 - **SOLID**: - 单一职责:每个模型、视图职责明确 - 开放封闭:使用 Django REST Framework 的扩展机制 - 依赖倒置:依赖抽象的序列化器和视图集 ### 性能优化 - 数据库索引优化(针对常用查询字段) - 查询优化(使用 select_related、prefetch_related) - 分页支持(防止大量数据加载) ### 安全性 - 数据验证(序列化器级别) - 权限控制(认证用户和匿名用户分离) - SQL 注入防护(ORM 框架) - XSS 防护(模板转义) ## 后台管理 访问 `http://127.0.0.1:8000/admin/` 进入管理后台 默认管理员账号: - 用户名: `admin` - 密码: `admin123` ## 开发者 浮浮酱 - 猫娘工程师 ฅ'ω'ฅ --- 祝你使用愉快喵~ (*^▽^*)