前言

  随着消费者对白酒品质和种类的需求日益增长,白酒数据推荐系统应运而生,旨在提供一种高效、智能的白酒管理和推荐服务。该系统采用B/S架构,Python语言作为主要开发语言,MySQL技术创建和管理数据库。系统面向管理员和终端用户两大主体,通过精心设计的功能模块满足不同需求。管理员端包含系统首页、个人中心、用户管理、白酒管理以及系统管理等核心功能,确保了白酒信息的准确维护和用户数据的安全管理。对于前台用户,系统提供了首页展示、白酒详细信息浏览、公告信息获取和个人中心互动等功能,其中个人中心包括修改密码和我的收藏等个性化选项。整个系统以数据驱动为核心,结合人工智能推荐算法,为用户推荐最适合其口味和偏好的白酒,从而提升用户体验并促进销售。简而言之,白酒数据推荐系统是一个集数据管理、智能推荐与用户交互于一体的多功能平台,为白酒爱好者带来前所未有的便捷和个性化体验。

详细视频演示

文章底部名片,联系我看更详细的演示视频

一、项目介绍

开发语言:Python
python框架:Django
软件版本:python3.7/python3.8
数据库:mysql 5.7或更高版本
数据库工具:Navicat11
开发软件:PyCharm/vs code
前端框架:vue.js

二、功能介绍

系统的建设可以为白酒数据推荐管理提供帮助,通过对一些基础信息管理实现针对性的安排,可以按照用户的角色权限使不同用户角色看到不一样的信息界面。现根据需求阶段的分析,我们可以大致确定系统需要包含的功能如下图所示:
在这里插入图片描述

图4-1 系统总体结构图

三、核心代码

部分代码:


def users_login(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")
        if req_dict.get('role')!=None:
            del req_dict['role']
        datas = users.getbyparams(users, users, req_dict)
        if not datas:
            msg['code'] = password_error_code
            msg['msg'] = mes.password_error_code
            return JsonResponse(msg)

        req_dict['id'] = datas[0].get('id')
        return Auth.authenticate(Auth, users, req_dict)


def users_register(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")

        error = users.createbyreq(users, users, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def users_session(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}

        req_dict = {"id": request.session.get('params').get("id")}
        msg['data'] = users.getbyparams(users, users, req_dict)[0]

        return JsonResponse(msg)


def users_logout(request):
    if request.method in ["POST", "GET"]:
        msg = {
            "msg": "退出成功",
            "code": 0
        }

        return JsonResponse(msg)


def users_page(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,
               "data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}
        req_dict = request.session.get("req_dict")
        tablename = request.session.get("tablename")
        try:
            __hasMessage__ = users.__hasMessage__
        except:
            __hasMessage__ = None
        if __hasMessage__ and __hasMessage__ != "否":

            if tablename != "users":
                req_dict["userid"] = request.session.get("params").get("id")
        if tablename == "users":
            msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
            msg['data']['pageSize'] = users.page(users, users, req_dict)
        else:
            msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
            msg['data']['pageSize'] = [],1,0,0,10

        return JsonResponse(msg)


数据库参考

-- MySQL dump 10.13  Distrib 5.7.31, for Linux (x86_64)
--
-- Host: localhost    Database: django7t7p8f2z
-- ------------------------------------------------------
-- Server version	5.7.31

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `django7t7p8f2z`
--

/*!40000 DROP DATABASE IF EXISTS `django7t7p8f2z`*/;

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `django7t7p8f2z` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `django7t7p8f2z`;

--
-- Table structure for table `baijiu`
--

DROP TABLE IF EXISTS `baijiu`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `baijiu` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `tupianlianjie` varchar(200) DEFAULT NULL COMMENT '图片链接',
  `lianjie` varchar(200) DEFAULT NULL COMMENT '链接',
  `jiage` double DEFAULT NULL COMMENT '价格',
  `xiaoshoue` double DEFAULT NULL COMMENT '销售额',
  `xiaoshouliang` varchar(200) DEFAULT NULL COMMENT '销售量',
  `chandi` varchar(200) DEFAULT NULL COMMENT '产地',
  `shangjiaxinxi` varchar(200) DEFAULT NULL COMMENT '商家信息',
  `xiangqingmiaoshu` varchar(200) DEFAULT NULL COMMENT '详情描述',
  `clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',
  `discussnum` int(11) DEFAULT '0' COMMENT '评论数',
  `storeupnum` int(11) DEFAULT '0' COMMENT '收藏数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='白酒';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `baijiu`
--

LOCK TABLES `baijiu` WRITE;
/*!40000 ALTER TABLE `baijiu` DISABLE KEYS */;
INSERT INTO `baijiu` VALUES (21,'2024-04-24 14:26:38','图片链接1','链接1',1,1,'销售量1','产地1','商家信息1','详情描述1','2024-04-24 22:26:38',0,1),(22,'2024-04-24 14:26:38','图片链接2','链接2',2,2,'销售量2','产地2','商家信息2','详情描述2','2024-04-24 22:26:38',0,2),(23,'2024-04-24 14:26:38','图片链接3','链接3',3,3,'销售量3','产地3','商家信息3','详情描述3','2024-04-24 22:26:38',0,3),(24,'2024-04-24 14:26:38','图片链接4','链接4',4,4,'销售量4','产地4','商家信息4','详情描述4','2024-04-24 22:26:38',0,4),(25,'2024-04-24 14:26:38','图片链接5','链接5',5,5,'销售量5','产地5','商家信息5','详情描述5','2024-04-24 22:26:38',0,5),(26,'2024-04-24 14:26:38','图片链接6','链接6',6,6,'销售量6','产地6','商家信息6','详情描述6','2024-04-24 22:26:38',0,6),(27,'2024-04-24 14:26:38','图片链接7','链接7',7,7,'销售量7','产地7','商家信息7','详情描述7','2024-04-24 22:26:38',0,7),(28,'2024-04-24 14:26:38','图片链接8','链接8',8,8,'销售量8','产地8','商家信息8','详情描述8','2024-04-24 22:26:38',0,8);
/*!40000 ALTER TABLE `baijiu` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `config`
--

DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) NOT NULL COMMENT '配置参数名称',
  `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
  `url` varchar(500) DEFAULT NULL COMMENT 'url',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `config`
--

LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `discussbaijiu`
--

DROP TABLE IF EXISTS `discussbaijiu`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `discussbaijiu` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `refid` bigint(20) NOT NULL COMMENT '关联表id',
  `userid` bigint(20) NOT NULL COMMENT '用户id',
  `avatarurl` longtext COMMENT '头像',
  `nickname` varchar(200) DEFAULT NULL COMMENT '用户名',
  `content` longtext NOT NULL COMMENT '评论内容',
  `reply` longtext COMMENT '回复内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='白酒评论表';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `discussbaijiu`
--

LOCK TABLES `discussbaijiu` WRITE;
/*!40000 ALTER TABLE `discussbaijiu` DISABLE KEYS */;
/*!40000 ALTER TABLE `discussbaijiu` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `news`
--

DROP TABLE IF EXISTS `news`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `news` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `title` varchar(200) NOT NULL COMMENT '标题',
  `introduction` longtext COMMENT '简介',
  `typename` varchar(200) DEFAULT NULL COMMENT '分类名称',
  `name` varchar(200) DEFAULT NULL COMMENT '发布人',
  `headportrait` longtext COMMENT '头像',
  `clicknum` int(11) DEFAULT '0' COMMENT '点击次数',
  `clicktime` datetime DEFAULT NULL COMMENT '最近点击时间',
  `thumbsupnum` int(11) DEFAULT '0' COMMENT '赞',
  `crazilynum` int(11) DEFAULT '0' COMMENT '踩',
  `storeupnum` int(11) DEFAULT '0' COMMENT '收藏数',
  `picture` longtext NOT NULL COMMENT '图片',
  `content` longtext NOT NULL COMMENT '内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COMMENT='公告信息';
/*!40101 SET character_set_client = @saved_cs_client */;

四、效果图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

五、文章目录

目 录
第一章 绪 论 1
1.1研究背景与意义 1
1.2系统研究现状 1
1.3 研究的主要内容 2
第二章 开发工具和开发技术 3
2.1 Python语言 3
2.2 Django框架 3
2.3 Hadoop介绍 3
2.4 协同过滤算法 3
2.5 MYSQL数据库技术 4
2.6 B/S架构 4
第三章 需求分析 5
3.1 需求描述 5
3.2系统可行性分析 5
3.2.1技术可行性分析 5
3.2.2 经济可行性分析 5
3.2.3 环境运行可行性分析 6
3.2.4 法律可行性分析 6
3.3 系统功能需求分析 6
3.4 非功能性需求分析 7
3.5 系统流程分析 8
3.5.1 协同过滤算法流程图 8
3.5.2 登录流程 8
3.5.3 注册流程 9
3.5.4 添加流程 9
3.6 本章小结 10
第四章 系统设计 11
4.1 系统总体设计 11
4.2 数据库设计 11
4.2.1 数据库逻辑设计 11
4.2.2 数据库表设计 12
4.3 本章小结 14
第五章 详细设计与实现 15
5.1系统功能实现 15
5.1.1首页页面实现 15
5.1.2个人中心实现 16
5.2管理员功能实现 16
5.3 本章小结 19
第六章 系统测试 20
6.1 测试目的 20
6.2 测试用例 20
6.3 本章小结 21
结 论 22
参考文献 23
致 谢 24

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐