Pad0y Django2 Dailyfresh Save

dailyfresh电商项目,替换django框架为2.X并重构,美化了下后台管理页面,提供docker版本,该项目包含了实际开发中的电商项目中大部分的功能开发和知识点实践, 是一个非常不错的django学习项目,同时也记录在替换框架中遇到的坑,希望对各位的学习有所帮助。

Project README

快速开始指导

licenseversionCSDNFinishDjango workflow

该项目是一个基于Djaong 2.x的电商项目,包含了实际开发中的电商项目中大部分的功能开发和知识点实践,是一个非常不错的django入门学习项目,希望对各位的学习有所帮助。 烤地瓜教程配合小破站食用更香,猛戳此处

  • 技术点

    celery:分别负责用户注册异步发送邮件以及不同用户登陆系统动态生成首页
    fdfs+nginx:存储网站静态文件,实现项目和资源分离,达到分布式效果
    haystack+whoosh+jieba:全文检索框架,修改底层haystack库使之对中文搜索更加友好
    redis:作为django缓存和session存储后端,提升网站性能,给予用户更好体验
    
  • 开发环境

    Language: Python>=3.6
    Framework: Django 2.x
    IDE: Pycharm
    OS: windows 10
    
  • 功能模块

    • 用户模块
      • 注册
      • 登录
      • 激活(celery)
      • 退出
      • 个人中心
      • 地址管理
    • 商品模块
      • 首页(celery)
      • 商品详情
      • 商品列表
      • 搜索功能(haystack+whoosh)
    • 购物车模块(redis)
      • 增加
      • 删除
      • 修改
      • 查询
    • 订单模块
      • 确认订单页面
      • 订单创建
      • 请求支付(支付宝)
      • 查询支付结果
      • 评论
  • 项目结构图

    项目结构图


部署

  1. 创建环境,安装依赖

    # Create a virtual environment with conda
    conda create -n django python=3.7 --yes
    # Install the dependent libraries
    pip install -U pip
    pip install -r requirements.txt
    
  2. 修改whoosh backend

  3. 修改配置文件,参照settings_prod.py,在windows上部署测试拷贝配置文件重命名为settings_dev.py

    1. 修改数据库配置信息
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'dailyfresh',
            'HOST': 'localhost',
            'PORT': '3306',
            'USER': '#',  # 数据库用户名
            'PASSWORD': '#',  # 数据库密码
        }
    }
    
    2. 修改邮箱配置信息,163邮箱配置信息自查
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.qq.com'
    EMAIL_PORT = 25
    EMAIL_HOST_USER = '[email protected]'  # 发送邮件的邮箱
    EMAIL_HOST_PASSWORD = 'xxxx'  # qq邮箱授权码
    # EMAIL_USE_TLS = True  # 与SMTP服务器通信时,是否启动TLS链接(安全链接)
    EMAIL_FROM = '天天生鲜<[email protected]>'  # EMAIL_FROM 和 EMAIL_HOST_USER必须一样
    
    3. 填写fdfs的配置信息,注意端口是nginx的端口
    FDFS_STORAGE_URL = 'http://ip:port/'  
    
    4. 支付功能不需要用到的保持默认即可,需要用到移步官方文档或看配置文件注释
    
  4. 创建数据库

    CREATE DATABASE `dailyfresh` CHARACTER SET 'utf8mb4';
    
  5. 中间件

    1. FDFS

      FDFS服务在这个项目是作为存储静态图片的分布式文件系统,FDFS的安装配置是一件比较麻烦的事情,可以自行编译安装,也可用docker的方式启动(推荐)

      # pull image
      docker pull pad0y/fdfs:v3
      # 当storage和tracker在同宿主机时,必须使用host模式,否则文件上传返回storage内部地址,外部访问无法使用
      # MASTER_IP填写自己服务器的ip
      docker run -d --name fdfs\
          -p 8888:8888 \
          -p 22122:22122 \
          -p 23000:23000 \
          -e TZ=Asia/Shanghai \
          -e NET_VAR=eth0 \
          -e MASTER_IP={YOUR SERVER IP}\
          -v /mnt/fdfs:/var/local/fdfs \
          pad0y/fdfs:v3
      

      访问主机8888端口如果看到nginx默认页面则启动成功,修改utils/fdfs/client_deploy.conf, 填上tracker_server的IP(公网IP)

    2. 数据库和异步组件

      # start service(mysql/redis)
      net start mysql
      net start redis
      # start celery task
      celery -A celery_tasks.tasks worker --loglevel=info -P eventlet
      

      celery4.x+ 在win10上存在兼容性问题,如果上述celery启动报错请参照: windows上celery4.x不兼容问题完美解决办法

  6. 启动

    # Database migration and generate tables
    python manage.py makemigrations
    python manage.py migrate
    # create the super administrator account
    python manage.py createsuperuser
    # create cache table
    python manage.py createcachetable
    # launch
    python manage.py runserver
    

演示

由于fdfs是用docker创建的没有任何数据,项目启动没有任何图片纯属正常,需要自己去后台管理添加

登录页

首页效果图 首页效果图 后台显示

后言

别忘了来个start:star:~~~

Open Source Agenda is not affiliated with "Pad0y Django2 Dailyfresh" Project. README Source: Pad0y/Django2_dailyfresh
Stars
279
Open Issues
3
Last Commit
11 months ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating