快速开始

介绍

易果生鲜项目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/

images-2.png

images-3.png

安装Pycharm

pycharm 官网:https://www.jetbrains.com/pycharm/download/

下载pycharm进行安装

images-4.png

安装开发包

pip install -r package.txt

启动项目

进入项目manage.py 目录

python manage.py runserver

 

生产环境安装教程

安装python3 环境

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
安装 uwsgi
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 #设置日志目录
安装nginx
命令:wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

images-5.png

解压

命令:tar -zxvf nginx-1.12.2.tar.gz && cd nginx-1.12.2

images-6.png

自定义配置

命令:./configure \

img

编译安装

命令:make && make install

img

img

然后配置环境变量

命令:ln sbin/nginx /usr/bin/nginx

img

启动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;  #首页

        }

    }

配置短信验证码

发送短信需要借助于第三方发送短信平台实现效果,这里我们使用容联云第三方平台。

https://www.yuntongxun.com/

image-20200825182715465

修改下载的demo

image-12.png

 

安装celery服务器

Django将Celery进行了封装(djcelery),只需要下载注册,配置就可以使用
pip install django-celery==3.2.2
pip install django-redis
pip install redis==2.10.6     ## 使用2.10.6 版本 否则可能出现兼容问题

功能列表

功能大类功能点描述完成情况
用户管理用户注册注册成为一名商城的用户已完成
用户管理卖家申请申请成为卖家,开通店铺已完成
店铺管理店铺细化细化店铺logo,注入运营资金已完成
店铺管理进货使用店铺运营资金购进货物已完成
店铺管理订单发货对已经付款的订单进行发货或者拒绝发货已完成
店铺管理销售统计返回当月所有类型商品的销售情况已完成
店铺管理盈利管理返回当月每种商品盈利状况已完成
商品管理商品上架对商品进行细致描述后上架商品已完成
商品管理商品下架对已经在售的商品进行调整下架已完成
买家管理买家细化细化买家信息,绑定银行卡,添加收获地址已完成
买家管理地址管理设置默认地址,对地址进行管理已完成
买家管理商品推荐根据同样用户购买行为进行商品推荐已完成
买家管理购物车用户添加商品到购物车已完成
买家管理订单用户购买商品生成订单已完成
支付管理订单支付基于支付宝的的订单支付功能已完成
秒杀管理描述基于乐观锁进行项目秒杀已完成
秒杀管理秒杀通知定时发送秒杀信息已完成
架构管理短信发送基于登录和支付的通知短信发送已完成
架构管理邮件发送基于登录和支付的通知邮件发送已完成