易果生鲜项目2018年进行开发,2019年发起前后端分离,分布式架构,开始开源项目。目前我们的代码开源在github 和gitee上, 开源项目由易果生鲜后台商品管理系统,易果生鲜前台商品购买系统和易果生鲜平台管理系统组成。
https://gitee.com/dazejz/QShop
python3.7 + idea/pycharm + mysql + redis
测试环境基本要求:1个CPU 、2G内存和20G硬盘
需要自行安装 mysql5.6、Redis、uwsgi和nginx服务器
需要启动 mysql-server、redis-server、celery-server、celery-worker、uwsgi-server、nginx-server
Qshop 项目框架目录
Buyer 项目消费者模块
migrations 消费者数据库同步记录目录
templates 消费者模板文件目录
__init__ 消费者应用包文件
admin 消费者后台管理文件
apps 消费者应用管理文件
models 消费者应用模型文件
tests 消费者应用单元测试文件
views 消费者应用功能视图文件
Qshop 项目总目录
QUser 项目用户模块
migrations 用户模块数据库同步记录目录
templates 用户模板文件目录
__init__ 用户模块应用包文件
admin 用户模块后台管理文件
apps 用户模块应用管理文件
models 用户模块应用模型文件
tests 用户模块应用单元测试文件
views 用户模块应用功能视图文件
QStore 项目店铺模块
migrations 店铺数据库同步记录目录
templates 店铺模板文件目录
__init__ 店铺应用包文件
admin 店铺后台管理文件
apps 店铺应用管理文件
models 店铺应用模型文件
tests 店铺应用单元测试文件
views 店铺应用功能视图文件
static 项目静态文件目录
buyer 消费者静态文件目录
quser 用户静态文件目录
store 店铺静态文件目录
db.sqlite3 项目便携sqlite数据库
manage.py 项目管理文件
安装Python(开发环境安装)
Python官网:https://www.python.org/
安装Pycharm
pycharm 官网:https://www.jetbrains.com/pycharm/download/
下载pycharm进行安装
安装开发包
pip install -r package.txt
启动项目
进入项目manage.py 目录
python manage.py runserver
1、 安装Linux系统依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* libffi-devel make -y
2、 下载python安装包
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
3、 编译安装
(1) 解压
tar -xvf Python-3.7.7.tgz
(2) 配置安装
进入解压目录
./configure prefix=/usr/local/python3
(3) 编译安装
make && make install
(4) 创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip install -r package.txt
pip install uwsgi 安装uwsgi
创建软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
创建/opt/scripts/uwsgi.ini配置文件
[uwsgi]
chdir=/opt/OurBlog #项目目录
module=OurBlog.wsgi:application #指定项目的application
socket=/opt/script/uwsgi.sock #指定sock的文件路径
workers=5 #进程个数
pidfile=/opt/script/uwsgi.pid
http=192.168.2.69:8000 #指定IP端口
static-map=/static=/opt/OurBlog/static #指定静态文件
uid=root #用户
gid=root #组
master=true #启用主进程
vacuum=true #自动移除unix Socket和pid文件当服务停止的时候
enable-threads=true #启用线程
thunder-lock=true #序列化接受的内容,如果可能的话
harakiri=30 #设置自中断时间
post-buffering=4096 #设置缓冲
daemonize=/opt/script/uwsgi.log #设置日志目录
命令:wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
解压
命令:tar -zxvf nginx-1.12.2.tar.gz && cd nginx-1.12.2
自定义配置
命令:./configure \
编译安装
命令:make && make install
然后配置环境变量
命令:ln sbin/nginx /usr/bin/nginx
启动nginx查看效果
nginx
进行nginx配置,(配置nginx.conf,配置之前进行备份)
http {
include mime.types;
default_type application/octet-stream;
#这里规定了日志的格式,默认是注释的,我们需要解开注释
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {listen 80; #监听端口
server_name OurBlog; #服务名称
charset utf-8; #服务器编码
access_log /var/log/nginx/access.log main; #访问日志路径,注意:这个目录可能没有,需要创建
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; #压缩格式
error_log /var/log/nginx/error.log error; #错误日志注意:这个目录可能没有,需要创建
location / {
include uwsgi_params; #nginx加载uwsgi模块
uwsgi_connect_timeout 30; #连键超时时间
uwsgi_pass unix:/opt/script/uwsgi.sock; #nginx对应的uwsgi socket文件
}
location = /static/ {
alias /opt/OurBlog/static; #静态文件路径
index index.html index.htm; #首页
}
}
发送短信需要借助于第三方发送短信平台实现效果,这里我们使用容联云第三方平台。
修改下载的demo
Django将Celery进行了封装(djcelery),只需要下载注册,配置就可以使用
pip install django-celery==3.2.2
pip install django-redis
pip install redis==2.10.6 ## 使用2.10.6 版本 否则可能出现兼容问题
功能大类 功能点 描述 完成情况 用户管理 用户注册 注册成为一名商城的用户 已完成 用户管理 卖家申请 申请成为卖家,开通店铺 已完成 店铺管理 店铺细化 细化店铺logo,注入运营资金 已完成 店铺管理 进货 使用店铺运营资金购进货物 已完成 店铺管理 订单发货 对已经付款的订单进行发货或者拒绝发货 已完成 店铺管理 销售统计 返回当月所有类型商品的销售情况 已完成 店铺管理 盈利管理 返回当月每种商品盈利状况 已完成 商品管理 商品上架 对商品进行细致描述后上架商品 已完成 商品管理 商品下架 对已经在售的商品进行调整下架 已完成 买家管理 买家细化 细化买家信息,绑定银行卡,添加收获地址 已完成 买家管理 地址管理 设置默认地址,对地址进行管理 已完成 买家管理 商品推荐 根据同样用户购买行为进行商品推荐 已完成 买家管理 购物车 用户添加商品到购物车 已完成 买家管理 订单 用户购买商品生成订单 已完成 支付管理 订单支付 基于支付宝的的订单支付功能 已完成 秒杀管理 描述 基于乐观锁进行项目秒杀 已完成 秒杀管理 秒杀通知 定时发送秒杀信息 已完成 架构管理 短信发送 基于登录和支付的通知短信发送 已完成 架构管理 邮件发送 基于登录和支付的通知邮件发送 已完成