Django 商城项目

Django-shop项目

1 项目准备

1.1项目介绍

项目需求分析

需求分析流程

  • 企业中,首先前端会借助产品原型图来分析需求

  • 然后前端根据产品原型图开发前端页面,后端开发对应的业务及响应处理。
    在这里插入图片描述

shop项目通过示例网站作为原型图来分析需求

  • 模块分析
    • 验证:图形验证、短信验证
    • 用户:注册、登录、用户中心
    • 第三方登录:QQ登录
    • 首页广告:首页广告
    • 商品:商品列表、商品搜索、商品详情展示
    • 购物车:购物车管理、购物车合并
    • 订单:确认订单、提交订单
    • 支付:支付宝支付、订单商品评价
    • MIS系统:数据统计、用户管理、权限管理、商品管理、订单管理
项目架构设计

项目开发模式

  • 开发模式:前后端不分离
  • 后端框架:Django
  • 前端框架:Vue.js

项目运行机制

用户(发送请求)—> Nignx服务器(接收,并判断请求是请求什么资源文件)—>(若是动态数据请求)uwsgi服务器 —>Django(处理请求,返回响应)
在这里插入图片描述

1.2 工程创建和配置

准备工作
pipenv shell
pip install django==2.2
django-admin startproject django_shop
配置开发环境
# manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lgshop.dev') # 自定义的开发环境配置文件
配置MySQL数据库
pip install mysqlclient
# dev.py
# mysql配置
DATABASES = {....}
配置Redis数据库

商城数据缓存服务采用Redis数据库

文档地址:https://django-redis-chs.readthedocs.io/zh_CN/latest/

pip install django-redis
# dev.py
# redis配置
CACHES = {
    "default": { # 默认
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "session": { # session
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

default:

  • 默认的Redis配置项,采用0号Redis库。

session:

  • 状态保持的Redis配置项,采用1号Redis库。

SESSION_ENGINE

  • 修改session存储机制使用Redis保存。

SESSION_CACHE_ALIAS:

  • 使用名为"session"的Redis配置项存储session数据
配置工程日志

日志文件:存放一些项目运行的记录,比如用户请求信息、项目报错信息等

# dev.py
# 日志配置
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已经存在的日志器
    'formatters': {  # 日志信息显示的格式
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },
    },
    'filters': {  # 对日志进行过滤
        'require_debug_true': {  # django在debug模式下才输出日志
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {  # 日志处理方法
        'console': {  # 向终端中输出日志
            'level': 'INFO',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'file': {  # 向文件中输出日志
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(BASE_DIR, 'logs/lgshop.log'),  # 日志文件的位置
            'maxBytes': 300 * 1024 * 1024,
            'backupCount': 10,
            'formatter': 'verbose'
        },
    },
    'loggers': {  # 日志器
        'django': {  # 定义了一个名为django的日志器
            'handlers': ['console', 'file'],  # 可以同时向终端与文件中输出日志
            'propagate': True,  # 是否继续传递日志信息
            'level': 'INFO',  # 日志器接收的最低日志级别
        },
    }
}

在项目目录下新建一个logs文件夹

配置前端静态文件

在项目目录下新建一个static目录

# dev.py
# 静态文件存放路径配置
STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]
模板文件配置
# 模板文件配置
TEMPLATES=[.....]

2 用户注册

2.1 展示用户注册页面

  • 先搞定注册页面的功能,准备html,配置static,路由映射

2.2 用户模型类

  • 继承Django自带的AbstractUser模型,定义数据库用户表

2.3 用户注册业务实现分析

  • 对注册页面功能进行接口设计分析
    • 1 分析需要定义哪些model
    • 2 编写哪些view函数/类
    • 3 编写哪些form
    • 4 以及请求方式分析,是否是Ajax请求数据
    • 5 用户注册数据保存在哪里
    • 6 用户请求状态以什么方式保存以及保存在哪里

在这里插入图片描述

  • 分别编写上述功能的接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值