自己做的一个商城项目(感觉商城项目挺火的所以做了),没有抄黑马的那个美多商城,也算是在普通商城的基础上改进的,毕竟商城系统几乎都一个样。
项目最早使用了python3.10、django 4.2、DRF(Django REST framework),MySQL实现,后续添加了Redis,simpleJWT,celery异步任务,定时任务,用RabbitMQ做的celery的消息代理,二次封装了阿里云短信的SDK,同时添加了商品推荐(简单手搓了一个MapReduce给收藏的商品进行排序,然后推荐同类商品,因为是自己做的项目,没啥数据训练模型就不用机器学习实现了),添加了以图搜图的功能(感觉挺好实现的功能,不知道为啥网上大部分的商城项目都没有这个功能,图片相似度对比,设置阈值进行返回给用户),给celery定时任务设置了一个执行完毕后将执行结果发送给管理员的功能(刚好学到就把功能加上了)。
用户:用户登录注册,个人信息修改,头像上传,设置默认收货地址,发送短信验证码,绑定手机号,解绑手机号,刷新token,校验token。
地址:增删改查。
历史记录:创建。
商品:获取商品列表(搭配filter进行筛选),获取商城主页,获取单个商品,收藏商品,获取收藏的商品列表,取消收藏,获取商品分类信息。
购物车:添加商品到购物车,查看购物车列表,修改购物车商品状态(是否选中),修改购物车商品数量。
订单:创建订单, 获取订单列表,订单状态切换。
要求8.0以上版本,低版本会报错。
详细安装教程自己搜。
终端链接数据库
your_username为你的用户名
mysql -u your_username -p
输入密码进入数据库
create database shop;
返回OK创建成功
GitHub上安装,官方没有Windows版。
详细安装教程自己搜,应该没有版本问题,如果有可以联系我。
因为Celery用RabbitMQ做的消息代理,所以要下载一个RabbitMQ,如果不用RabbitMQ做消息代理的话可以不安装的,settings.py中代码都写好了可以切换消息代理和任务存储位置等,请根据自己需求选择。
安装RabbitMQ前,要安装Erlang,详细见RabbitMQ官方文档
详细安装教程自己搜,应该没有版本问题,如果有可以联系我。
1.创建虚拟环境(以免包冲突之类的,最好还是建一个新的虚拟环境)
以conda为例,在conda命令行输入
conda create -n env_name python=3.10
安装配置项(建议用清华源,目前还能用)
pip install -r requirements.txt
打开settings.py文件,配置数据库等信息,(用户名,密码等换成自己的)
生成数据库迁移文件
python manage.py makemigrations
数据迁移
python manage.py migrate
启动celery异步任务
celery -A shop worker -l debug -P eventlet
启动celery定时任务
celery -A shop beat --loglevel=info
启动celery日志(flower)
如果Rabbit做消息代理的话就打开RabbitMQ的那个作业网址
celery -A shop flower
项目启动
终端输入
python manage.py runserver
嫌麻烦就自己编辑一个形参运行
项目没有前端部分,但是有接口测试文档,有想做前端的小伙伴可以直接push上来哦
├─cart 购物车模块 │ │ admin.py (admin后台) │ │ apps.py │ │ models.py (数据库模型) │ │ permissions.py (权限管理) │ │ serializers.py (序列化器) │ │ tests.py │ │ urls.py (路由) │ │ views.py (视图) │ │ init.py │ │ │ │ ├─common 通用工具 │ │ aliyun_message.py (阿里云短信封装) │ │ authenticate.py (身份认证) │ │ db.py (抽象模型类) │ │ map_reduce.py (MapReduce,商品用的) │ │ recommend.py (商品推荐,废弃) │ │ init.py │ │ │ │ ├─file 媒体文件 │ └─image │ banana.jpg │ beef.jpg │ carrots.jpg │ chicken.jpg │ frunt.jpg │ meet.jpg │ posters1.jpg │ posters2.jpg │ posters3.jpg │ vegetables.jpg │ 头像.jpg │ ├─goods 商品模块 │ │ admin.py │ │ apps.py │ │ models.py │ │ permissions.py │ │ serializers.py │ │ tests.py │ │ urls.py │ │ views.py │ │ init.py │ │ ├─history 历史记录模块 │ │ admin.py │ │ apps.py │ │ models.py │ │ serializers.py │ │ tests.py │ │ views.py │ │ init.py │ │ ├─order 订单模块 │ │ admin.py │ │ apps.py │ │ models.py │ │ serializers.py │ │ tasks.py (异步任务和定时任务) │ │ tests.py │ │ urls.py │ │ views.py │ │ init.py ├─shop 项目配置模块 │ │ asgi.py │ │ celery.py (celery任务配置) │ │ enums.py │ │ settings.py │ │ urls.py │ │ wsgi.py │ │ init.py ├─templates 模版(没啥用) ├─users 用户模块 │ │ admin.py │ │ apps.py │ │ models.py │ │ permissions.py │ │ serializers.py │ │ tasks.py │ │ urls.py │ │ views.py │ │ init.py
QQ:1071519731
微信:17692275126
手机号:17692275126
谷歌邮箱:[email protected]
QQ邮箱:[email protected]