# meiduo_project
**Repository Path**: ma-yongfan/meiduo_project
## Basic Information
- **Project Name**: meiduo_project
- **Description**: 美多商城项目练习
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 16
- **Created**: 2023-12-01
- **Last Updated**: 2023-12-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 美多商城 — Django 开发
## 前言
> 本项目属于网上自学项目,注重熟悉业务功能开发以及扩展技术知识面。了解前沿的技术解决方案。并新增了一些自己的设计,例如:统一异常处理,状态码枚举类、项目 `html` 网页模板路径汇总类,以及 `Cookie, Redis` 键名的设计与封装等。尽量的让项目避免出现 **魔法值**,提高项目的可扩展性和可维护性。
## 项目概述
美多商城属于 `B2C` 电商平台,商城销售自营商品给顾客。系统前台包括 **商品列表、商品详情、商品搜索、购物车、订单支付、评论、用户中心** 等核心业务功能,系统后台包括商品管理、运营管理、用户管理、系统设置等系统管理功能。
## 项目技术栈
| 名称 | 说明 |
| --------------------- | ------------------------ |
| Django | Django Web开发框架 |
| Django REST framework | Django REST规范的Web框架 |
| Vue | 前端 JavaScript 框架 |
| MySQL | MySQL 数据库 |
| Redis | Redis 缓存数据库 |
| Celery | 分布式任务队列 |
| FastDFS | 分布式文件存储系统 |
| ElasticSearch | 全文检索框架 |
| alipay | 阿里支付 |
| OAuth 2.0 | 第三方授权认证 |
| docker | 容器化引擎 |
## 项目架构图

## 初始开发环境
| 环境 / 工具 | 版本 | 说明 |
| ----------- | ------------------- | ----------------- |
| Python | 3.7.9 | Python 解释器 |
| Django | 3.2.7 | Django 框架 |
| Jinja2 | 2.10 | 模板引擎 |
| PyCharm | Professional 2020.2 | Python IDE 编辑器 |
| MySQL | 8.0.26 | MySQL 数据库 |
上面就是项目的初始开发环境,项目后续所需的第三方库环境在 `meiduo_mall` 下的 `requirements.txt` 文件中。可以使用如下命令全部安装。
```python
pip install -r requirements.txt
```
## 项目功能图

## 项目开发模块划分
### 系统前台
- 首页内容广告模块 - contents
- 用户模块 - users
- 校验模块 - verifications
- 认证模块 - oauth
- 省市区三级联动模块 - areas
- 商品模块 - goods
- 购物车模块 - carts
- 订单模块 - orders
- 支付模块 - payment
### 系统后台
- 商品管理模块 -
- 运营管理模块 -
- 用户管理模块 -
- 系统设置模块 -
## 项目特色
1. 自定义用户认证后端,实现多账户登录,基于 `OAuth2.0`,实现第三方登录。
2. 采用 `Redis` 作为消息中间件,配合 `Celery` 完成异步发送邮件与短信验证码。
3. 采用分布式文件系统 `FastDFS` 作为文件存储系统,存储项目静态图片。
4. 采用 `Haystack+Elasticsearch` 实现商品的搜索。
5. 采用 `docker` 容器化技术搭建项目环境。
6. 数据库事务 + 乐观锁解决并发订单保存问题。
7. 网站首页、商品详情页进行页面静态化,提升网站性能。
8. `MySQL` 主从同步,读写分离实现数据库负载均衡。
## 项目部分页面展示
### 广告首页




### 商品详情

### 购物车

## 项目资料
## 项目环境搭建与部署
一、准备项目的 `Python` 虚拟环境
二、数据库环境
MySQL
Redis
三、docker 搭建项目环境
四、nginx + uwsgi 部署项目
## 尾语
**✍ 用 Code 谱写世界,让生活更有趣。❤️**
**✍ 万水千山总是情,点赞再走行不行。❤️**
**✍ 码字不易,还望各位大侠多多支持。❤️**