python的Django框架之美多商场实战
注意⚠️:本项目文件和数据库已更新,之前没配置成功或者后台管理进不去的同学请重新下载
0.介绍
0.1 美多商场项目包括以下条目
- 美多商场的前端(vue)
- 美多商场的后端(django)
- 美多商场的后台管理的前端(vue)
功能介绍:
模块 | 功能 |
---|---|
验证 | 图形验证、短信验证 |
用户 | 注册、登录、用户中心(基本信息、邮箱激活、收货地址、我的订单、修改密码) |
第三方登录 | QQ登录(不可以的话就用微博登录) |
首页广告 | 首页广告 |
商品 | 商品列表、商品搜索、商品详情、商品浏览记录 |
购物车 | 购物车管理、购物车合并 |
订单 | 确认订单、提交订单、订单商品评价 |
支付 | 支付宝支付 |
MIS系统 | 数据统计、用户管理、权限管理、商品管理、订单管理 |
0.2 美多商场后端涉及到的知识点
项目开发版本管理用到的git
工程创建使用到的虚拟环境
virtualenv
关系型数据库
MySQL
缓存数据库
Redis
修改host文件设置本地域名
captcha
图形验证码拓展包Celery异步任务队列
调用第三方API发送短信
调用自己的邮箱服务发送邮箱验证
文件存储方案FastDFS
方便的服务载具Docker
全文检索方案
Elasticsearch
Haystack扩展建立索引
支付宝API接入
Django项目的运行服务器uwsgi
0.3 做好无限解决bug和接收新知识的准备
python 包相关命令
1 | # 查看安装的python包 |
1.配置环境
1.1 安装配置虚拟环境(非必要,但推荐)
安装
安装虚拟环境的命令:(linux)
1 | sudo pip install virtualenv |
win环境:
1 | sudo pip install virtualenv |
创建虚拟环境
1 | mkvirtualenv 虚拟环境名称 |
指定python版本创建虚拟环境
1 | mkvirtualenv -p python3 虚拟环境名称 |
查看虚拟环境
1 | workon |
使用(进入)虚拟环境
1 | workon 虚拟环境名称 |
可以看到以下情况就是在虚拟环境里
退出虚拟环境
1 | deactivate |
删除虚拟环境的命令
1 | rmvirtualenv 虚拟环境名称 |
1.2 安装项目所需要的包(必要)
django
1 | pip install django==3.2.9 |
mysql相关
1 | pip install mysqlclient |
redis相关
1 | pip install django-redis |
CORS跨域相关
1 | pip install django-cors-headers |
处理图片相关
1 | pip install Pillow |
异步队列处理任务相关
1 | pip install -U Celery |
QQ登录相关
1 | pip install QQLoginTool |
用户认证相关
1 | pip install itsdangerous==2.0.1 |
FastDFS文件存储相关
1 | pip install py3Fdfs |
Elasticsearch全文搜索相关
1 | pip install django-haystack |
crontab定时任务相关
1 | pip install django-crontab |
支付宝API相关
1 | pip install python-alipay-sdk --upgrade |
uwsgi相关(非必要)
1 | pip install uwsgi |
如果安装完必要的包运行项目时还是报缺少模块的话,可以参考我的环境内的包,安装报错时缺少的模块即可
务必按对应版本安装,防止兼容问题
本人环境内的包及版本号:
1 | alipay==0.7.4 |
使用虚拟环境安装包出错直接了当的解决方案
直接下载已经配置好的虚拟环境包
里边是测试好的虚拟环境包,放到自己电脑的环境文件夹里就可以使用此虚拟环境了
将下载好的包放入存放虚拟环境的目录内
windows:C:/Users/<用户名>/Enve
测试虚拟环境:
1 | workon py3_meiduo |
1.3 配置host文件,设置本地域名(必要)
找到自己电脑的host文件,添加以下条目
1 | 127.0.0.1 www.meiduo.site |
windows系统的host文件路径
1 | C:\Windows\System32\drivers\etc\hosts |
Linux or Mac 系统的host文件路径
1 | /etc/hosts |
用于在本地虚拟一个域名
1.4 安装配置MySQL数据库(必要)
windows系统:
2.安装
3.配置全局变量
此电脑右键->属性->关于->高级系统设置->选择高级菜单->环境变量->在系统变量栏->找到变量为Path
的项点编辑->新建->填入系统的mysql/bin的目录->确定
1.5 安装配置Redis数据库(必要)
2.安装
1.6 安装docker(非必要,不愿尝试本地部署的同学可省略)
一直下一步无脑安装
1.7 用docker安装并启用FastDFS(非必要,不愿尝试本地部署的同学可省略)
—–以下命令为Linux命令,Windows将sudo取消即可,但Windows启动终端时请以管理员身份运行—–
1.拉取镜像(下载服务):
1 | sudo docker image pull delron/fastdfs |
拉取不下来的同学可以选择直接下载镜像进行安装
链接: https://pan.baidu.com/s/1eylY7NeHV8dFMH3PDT4Ybg?pwd=vlnj
提取码: vlnj
1 | sudo docker load -i 文件路径/fastdfs_docker.tar |
2.创建容器
2.1 创建Tracker进程(fastDFS文件存储服务的守护进程)
将 Tracker 运行目录映射到自己电脑的指定目录中,此目录可以自行决定,因为映射了目录就放方便管理服务
目录中的文件 ——> 点此下载
1 | # 命令解析:docker run -dit(后台持久化运行) --name tracker --network=host(使用本地网络环境) -v(映射目录) <容器内的目录>:<容器外的目录> delron/fastdfs tracker |
2.2 创建storage进程(fastDFS文件存储服务的存储进程)
- TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使用127.0.0.1,使用自己电脑所在网段ip)
- 我们将 storage 运行目录映射到自己电脑的指定目录中,此目录可以自行决定,这个是fastDFS服务用于存放数据文件的目录
- 目录中的文件 ——> 点此下载
1 | # 命令解析:docker run(使用镜像启动容器) -dit(后台持久化运行) --name storage(服务命名) --network=host(使用本地网络环境) -v(映射目录) <容器内的目录>:<容器外的目录> delron/fastdfs(镜像名称) storage(镜像内的服务名称) |
注意⚠️:将Tracker服务的ip更改为自己电脑所在妄断ip(例:192.168.1.xxx)
docker启动服务说明:
- run (启动容器)
- -dit (后台持久化运行)
- –name storage(给服务命名,可自定义)
- –network=host (使用本地网络环境)
- -v(映射目录) <容器内的目录>:<容器外的目录>
1.8 使用docker安装配置Elasticsearch-ik(非必要,可尝试)
1.拉取镜像(下载服务)
1 | # 从云仓库拉取镜像 |
新建一个目录用于映射elasticsearch服务的配置文件目录,建议和项目文件夹放一起
2.创建容器并启动容器(启动服务)
2.1 修改elasticsearch.yml
文件,此文件在elasticsearch/config目录里
elasticsearch/config目录我已经打包好了 ——> 点击下载
下载下来后找到elasticsearch/config目录里的elasticsearch.yml
文件,修改network.host
字段,大概在54行
修改成自己电脑所在网段的真实ip地址
1 | network.host: 192.158.1.xxx |
2.2 启动服务
1 | sudo docker run -dti --name=elasticsearch --network=host -v <自己电脑的elasticsearch/config目录>:/usr/share/elasticsearch/config delron/elasticsearch-ik:2.4.6-1.0 |
这个操作同上两步我就不过多解释了
1.6、1.7、1.8步骤操作完成的同学请在终端输入(windows系统去掉sudo)
sudo docker ps
查看docker的容器(也就是服务)有没有正常在运行
如果正常的话应该有类似以下的样子
2.启动服务
2.1 下载项目相关文件
2.2 导入mysql数据库
先下载美多MySQL数据
1.创建meiduodb
数据库
1 | # 先进入数据库 |
2.导入.sql数据文件
先进到存放.sql
数据文件的文件夹目录,在当前目录打开终端,再输入以下命令
1 | mysql -uroot -p123456 meiduodb < meiduodb.sql |
2.3 修改项目配置
1.mysql
找到项目根目录meiduo/settings.py 文件
找到database
字段,修改成自己的
1 | DATABASES = { |
2.redis
找到项目根目录meiduo/settings.py 文件
找到CACHES
字段
(如果安装完redis没修改过配置,以下就是默认配置,项目中已写入默认配置)
1 | # redis数据库配置 |
3.FastDFS存储地址(没修改,非必要)
找到项目根目录下utils/fastdfs/client.conf 文件
找到base_path
字段,修改成自己的日志目录
找到tracker_server
修改为自己服务的地址
1 | # the base path to store log files |
找到项目根目录meiduo/settings.py 文件
修改FDFS_BASE_URL
字段
1 | # FastDFS相关参数 |
4.修改elasticsearch搜索引擎地址(没修改,非必要)
1 | # Haystack |
2.3 启动项目
检查数据库:
检查mysql数据库是否启动:
1 | mysql -uroot -p |
检查redis数据是否启动:
1 | redis-cli |
出现以下情况就说明启动好了
如果没有出现以上情况,请重新启动,打开终端输入如下命令启动
1 | redis-server |
后端:
进入meiduo目录
1 | # 进入美多django项目目录 |
新建终端窗口 启动celery异步任务队列
1 | # 进入美多django项目目录 |
前端:
进入front_end_pc目录
1 | cd ./front_end_pc |
启动好后在浏览器输入以下地址访问:
1 | http://www.meiduo.site:8080 |
后台管理(meiduo_admin)的前端:
1 | cd ./meiduo_admin |
启动好后在浏览器输入以下地址访问:
1 | http://www.meiduo.site:8090 |
2.4 访问页面
1 | # 主页 |
剩下的就自己研究吧
已注册账号
1 | 管理员账户 |