摘 要
在电子商务迅猛发展的背景下,个性化推荐系统成为提升用户体验和增加销售额的关键。本研究旨在通过结合大语言模型的优势,开发一种新型的电子商务消费者推荐系统,以解决现有系统的局限性,为用户提供更加精准、个性化的商品推荐服务。
本文深入分析了当前电子商务推荐系统中存在的挑战,并提出了一种基于Flask框架、Python编程语言以及MySQL数据库的大语言模型驱动的推荐系统方案。该系统利用大语言模型强大的自然语言处理能力,通过对用户评论、浏览历史等多源数据进行深度学习,实现对用户偏好的精确建模。此外,我们还创新性地引入了动态调整算法,根据用户实时反馈优化推荐结果,从而显著提高了推荐的准确率与相关性。
本研究最终实现了具备高精度和高个性化的推荐系统,极大地增强了用户满意度。实际应用中,系统不仅可以帮助企业更有效地定位目标客户群,提高转化率,同时也为用户提供了更为满意的购物体验,彰显了其重要的商业价值和社会意义。
关键词:Flask框架;电子商务消费者推荐系统;Python语言;大语言模型
Abstract
In the context of the rapid development of e-commerce, personalized recommendation systems have become the key to improving user experience and increasing sales. The purpose of this study is to develop a new type of e-commerce consumer recommendation system by combining the advantages of large language models, so as to solve the limitations of the existing system and provide users with more accurate and personalized product recommendation services.
This paper deeply analyzes the challenges existing in the current e-commerce recommendation system, and proposes a large language model-driven recommendation system scheme based on Flask framework, Python programming language and MySQL database. The system uses the powerful natural language processing capabilities of large language models to accurately model user preferences through deep learning of multi-source data such as user comments and browsing history. In addition, we have innovatively introduced a dynamic adjustment algorithm to optimize the recommendation results based on real-time user feedback, which significantly improves the accuracy and relevance of recommendations.
In this study, a recommendation system with high precision and high personalization was finally realized, which greatly enhanced user satisfaction. In practical applications, the system can not only help enterprises more effectively locate target customer groups and improve conversion rates, but also provide users with a more satisfactory shopping experience, highlighting its important business value and social significance.
Key words: Flask Framework; e-commerce consumer recommendation system; Python language; Large language models
目 录
当今社会,随着生活质量的不断提升,人们的生活节奏也在不断加快,工作压力日益增大。在这样的背景下,消费者对于购物体验的要求越来越高,不仅希望商品选择丰富、购买过程便捷,还期望能够获得个性化的服务和推荐。然而,传统的电子商务平台往往难以满足这些需求,尤其是在个性化推荐方面,常常面临推荐准确性不高、用户兴趣捕捉不够精准等问题。这些问题不仅影响了用户的购物体验,也限制了电商平台提升销售额和用户忠诚度的能力。
因此,实现基于大语言模型的电子商务消费者推荐系统显得尤为必要,通过利用Flask、Python以及MySQL等技术,结合大语言模型的强大分析能力,可以有效地解决上述问题。这种系统能够根据用户的浏览历史、购买行为及偏好,实时提供高度个性化的产品推荐,极大地提升了用户体验。
现代社会中,高效的电子商务管理更加具有竞争性,而基于大语言模型的推荐系统的实现,将会给用户带来极大的便利。它不仅可以帮助企业更准确地理解和服务于目标客户群,优化库存管理和营销策略,还可以让用户在享受便捷购物的同时感受到个性化的关怀,进而增强用户的满意度和忠诚度。这标志着电子商务领域的一次重大进步,为未来的发展奠定了坚实的基础。
本研究旨在开发并验证一种基于大语言模型的电子商务消费者推荐系统,通过整合Flask框架、Python编程语言以及MySQL数据库的优势,实现对用户行为和偏好的深度分析与建模。该系统致力于解决传统推荐算法在准确性和个性化方面的不足,提供更加精准的商品推荐服务,从而提升用户的购物体验和满意度。同时,探索如何利用动态调整算法根据用户实时反馈优化推荐结果,以期达到提高推荐相关性和用户参与度的目标。
本研究的意义在于不仅推动了电子商务推荐系统技术的发展,还为企业提供了更有效的工具来理解和满足客户需求,增强市场竞争力。通过显著提升推荐的准确性和个性化水平,本系统能够有效增加用户的购买意愿和忠诚度,进而促进销售额的增长。此外,对于学术界而言,本研究为大语言模型在电子商务领域的应用开辟了新的路径,并提出了创新性的解决方案,有助于深化对用户行为模式的理解和技术应用的新探索,具有重要的理论价值和实际应用前景。
在国内,电子商务消费者推荐系统的研究起步相对较晚,但发展迅速。自20世纪90年代末以来,随着阿里巴巴、京东等大型电商平台的崛起,对个性化推荐的需求日益增长,推动了相关技术的发展。初期研究主要集中在借鉴国外先进经验和技术,如协同过滤和基于内容的推荐算法。近年来,随着大数据和人工智能技术的兴起,国内学者开始探索深度学习、强化学习等先进技术在推荐系统中的应用,并取得了显著成果。目前,国内的研究不仅关注提高推荐精度和用户体验,还在探索如何结合中国特有的市场环境和社会文化因素,以实现更加精准的个性化服务。
在国外,电子商务消费者推荐系统的概念和技术自20世纪90年代初就开始萌芽,亚马逊和eBay等公司的成功实践极大地促进了这一领域的发展。初期的研究聚焦于基础算法的开发,如协同过滤技术和基于用户的推荐方法。进入21世纪后,随着互联网技术的进步和数据量的爆炸式增长,研究重点逐渐转向如何处理大规模数据集以及提升推荐系统的实时性和可扩展性。近年来,国外的研究者们积极引入机器学习和深度学习技术来改进推荐算法,并且越来越重视隐私保护、公平性和透明度等问题。当前,国外的研究趋势包括利用图神经网络进行社交关系建模、探索跨域推荐以及增强推荐系统的解释能力。
本文的主要工作聚焦于开发和评估一种基于大语言模型的电子商务消费者推荐系统,旨在提升推荐的准确性和个性化水平,为用户提供更加优质的购物体验。
本文首先对现有电子商务推荐系统的局限性进行了深入分析,特别是传统算法如协同过滤和基于内容的方法在处理用户复杂偏好时的不足。研究的核心在于如何利用大语言模型的强大自然语言处理能力,通过分析用户的评论、浏览历史以及其他行为数据,实现对用户偏好的精确建模。此外,还探讨了动态调整算法的应用,根据用户实时反馈不断优化推荐结果,从而提高推荐的相关性和用户体验。
技术路线上,本研究采用Flask作为后端框架,利用Python进行编程,并使用MySQL数据库存储系统所需的各类数据。具体来说,首先收集并预处理来自电商平台的数据,包括商品信息、用户评价及浏览记录等。然后,运用大语言模型对这些数据进行深度学习,提取出有价值的信息用于构建用户画像。在此基础上,设计并实现了个性化的推荐算法,该算法能够根据不同用户的特点提供定制化的商品推荐。为了进一步提升系统的性能,我们还引入了动态调整机制,使得推荐策略可以根据用户的即时反馈进行适时调整。
在大语言模型的应用方面,本文着重探索了其在理解用户意图和情感分析上的潜力。通过训练或微调现有的大语言模型,使其适应特定的电子商务场景,可以更准确地捕捉用户的偏好变化和情感倾向。这不仅有助于提高推荐的准确性,还能增强推荐内容的相关性和吸引力。此外,借助大语言模型生成的文本描述能力,还可以为用户提供更加详细和生动的商品介绍,进一步丰富用户体验。总的来说,本文的工作证明了将大语言模型应用于电子商务推荐系统中的可行性和有效性,为未来相关研究提供了新的视角和技术路径。
本文的结构按逻辑顺序分为以下几个章节:
第1章绪论,本章节介绍研究背景和意义,回顾当前研究现状,并阐明本文主要工作和论文组织结构。
第2章系统关键技术,本章节将对电子商务消费者推荐系统的实现关键技术进行简要介绍。
第3章系统分析,本章节基于市场调研,分析电子商务消费者推荐系统的可行性、功能、角色、性能等需求,明确各模块的业务需求。
第4章系统设计,本章节详细阐述系统的整体架构设计,包括前后端结构、数据库设计及功能模块的设计思路。
第5章系统实现,本章节介绍系统各主要模块的具体实现,包括代码示例、业务逻辑及界面设计等。
第6章系统测试,本章节描述系统的测试方法及结果,分析系统的性能、稳定性及用户反馈。
第7章结论,本章节对主要对研究成果进行总结。
作为一款流行的开源关系型数据库管理系统,MySQL[1]以其高性能、可靠性和易于使用的特点成为本系统的数据存储解决方案。它支持复杂的查询和事务处理,适用于存储和管理大量的模块信息、用户数据以及交互记录。通过优化表结构设计和索引策略,MySQL[2]能够快速响应系统的读写请求,保障数据的一致性和完整性,同时为数据分析和报表生成提供了坚实的基础。
B/S体系,即Browser/Server体系[3],是一种常见的网络应用程序架构。其工作原理基于客户端与服务器之间的请求-响应模型。用户通过浏览器向服务器发送请求,服务器接收到请求后进行处理,并生成相应的响应结果,最终将响应返回给客户端。浏览器接收到服务器返回的响应后,解析其中的标记语言(如HTML),并根据CSS样式表和JavaScript脚本来渲染页面,呈现给用户。用户可以与页面进行交互,例如点击链接、填写表单等操作,这些操作会触发新的请求,循环执行上述过程。
Python[4]是一种简洁易读、跨平台且功能强大的编程语言。它拥有庞大而活跃的社区,提供了丰富的第三方库和框架,如NumPy、Pandas和Django,使开发人员能够快速构建各种应用程序。Python在数据处理和科学计算方面表现出色,通过相关库和工具,可以进行数据分析、机器学习和科学计算等任务。此外,Python广泛应用于Web开发[4]、自动化脚本、网络爬虫等领域,其多样性使其成为一个全能的编程语言。无论你是初学者还是有经验的开发者,Python的简单语法、跨平台性以及强大的社区支持都能为你提供高效、优雅和可靠的编程体验。总之,Python[5]是一个强大而灵活的编程语言,深受开发人员喜爱,并在各个领域得到广泛应用。
Flask是一个轻量级的可定制框架[6],使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。
Flask[7]是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。
大语言模型[8]是一种基于深度学习技术的人工智能模型,专门设计用于理解和生成人类语言。通过在大量文本数据上进行训练,这些模型能够捕捉语言的复杂结构和细微差别,实现从翻译、问答到文本生成等多种自然语言处理任务。它们不仅能够识别语句中的情感和意图,还能根据上下文动态调整响应,提供高度相关的回复或内容推荐。代表性的大语言模型包括BERT、GPT系列等,其应用领域广泛,涵盖搜索引擎优化、智能客服、个性化推荐系统等,极大地推动了人机交互体验的进步。特别是在电子商务消费者推荐系统中,大语言模型能够通过对用户评论和浏览行为的深度分析,精准建模用户偏好,从而提供更加个性化和准确的商品推荐。
本系统基于成熟的Flask框架、Python编程语言及MySQL数据库构建,利用大语言模型进行数据处理与分析。当前,这些技术和工具在开发高效、可扩展的电子商务推荐系统方面已经得到了广泛验证和应用。大语言模型通过深度学习用户行为数据,能够有效提升推荐精准度,而Flask和Python提供了灵活且强大的开发支持,使得系统易于维护和升级,确保了技术上的可行性。
从经济效益来看,本系统的实施将显著提高电商平台的转化率和用户满意度,进而增加销售额。虽然初期需要投入一定成本用于技术研发和模型训练,但长期而言,通过优化库存管理和营销策略,减少用户流失,投资回报可观。此外,采用开源技术和现有基础设施也降低了成本,使项目具有良好的经济可行性。
考虑到用户体验和操作便捷性,系统设计注重简洁直观的操作界面,便于用户快速上手。同时,管理员后台提供全面的功能支持,如商品管理、数据分析等,有助于高效运营。系统还采用了动态调整算法根据用户反馈实时优化推荐结果,不仅提升了用户的个性化体验,也简化了日常维护工作,确保了操作上的可行性。
电子商务消费者推荐系统旨在为普通用户提供个性化商品推荐服务,并为管理员提供全面的后台管理功能。通过整合Flask框架、Python编程语言以及MySQL数据库,结合大语言模型技术,系统能够根据用户的浏览历史、购买行为等数据进行深度分析,从而实现精准的商品推荐,同时支持用户和管理员对信息进行便捷管理和操作。
- 普通用户模块:
首页:展示热门商品和促销活动,吸引用户的注意力并促进购买。提供个性化推荐,根据用户的浏览历史和偏好展示可能感兴趣的商品。
交流中心:为用户提供一个讨论和分享购物经验的平台,增强社区互动。用户可以发布帖子或回复他人的讨论,形成良好的社区氛围。
通知公告:及时向用户推送系统的重要更新和活动信息,确保用户了解最新动态。通过公告栏让用户知晓平台规则的变化和服务调整。
新闻资讯:提供最新的行业新闻和趋势分析,帮助用户掌握市场动向。内容涵盖产品发布、品牌故事等,丰富用户的知识面。
服装商城:汇集多种风格和品牌的服装商品,满足不同用户的购物需求。用户可以通过搜索或分类筛选找到心仪的商品,并直接在线购买。
商城管理:
·我的购物车:允许用户将喜欢的商品添加到购物车中,方便管理和结算。
·我的订单:查看所有订单的状态和详情,包括物流信息,便于追踪购买的商品。
·我的地址:管理收货地址,确保每次购物时都能准确无误地收到商品。
·我的优惠券:查看当前可用的优惠券,并在结账时使用以享受折扣。
我的账户:用户可以在此修改个人信息,如联系方式、密码等,保障账户安全。
个人中心:
·个人首页:展示用户的个人信息和最近的活动记录,一目了然。
·订单配送:跟踪订单的配送状态,随时了解商品到达的时间。
·交流中心:参与社区讨论,与其他用户分享购物体验和心得。
·收藏:保存喜欢的商品以便日后快速访问或购买。
·评论管理:对已购商品进行评价,或者回复其他用户的评论,增加互动性。
- 管理员模块:
后台首页:显示销售统计和用户分析等关键指标,帮助管理员了解业务状况。
系统用户:增删改查注册用户的信息,维护平台安全。
轮播图管理:更新网站首页的宣传内容,吸引用户注意力。
通知公告管理:发布公告以告知用户重要消息,确保沟通顺畅。
资源管理:管理和更新平台上的新闻资讯及其分类,保证信息的新鲜度。
交流管理:监督用户交流情况,必要时进行干预,维持良好的社区环境。
商城管理:
·服装商城:维护商品目录,包括添加新商品、编辑现有商品详情以及删除过季或无库存的商品,确保商品信息准确且吸引人。
·分类列表:创建和管理商品分类,优化分类结构以提升用户体验和搜索效率。
·订单列表:查看所有订单的详细信息,监控订单状态,并根据需要进行手动调整或取消订单。
·订单配送:跟踪订单物流状态,解决配送过程中出现的问题,确保顾客满意度。
·优惠券:设计并发放优惠券,制定使用规则,促进销售并通过促销活动增加用户粘性。
普通用户集中在探索商品、参与社区互动和管理个人购物体验上。用户首先通过首页获取热门商品推荐和促销信息,然后可以在服装商城中根据个人喜好浏览并选购商品。此外,用户还能在交流中心分享购物心得,增加社区参与感。通过我的账户和个人中心,用户能够方便地管理个人信息、查看订单状态以及处理与购物相关的事务,从而享受便捷、个性化的购物体验。普通用户角色用例图如下所示。

图3-1 普通用户用例图
管理员侧重于平台的维护和优化,确保为用户提供高质量的服务。在后台首页,管理员可以监控关键业务指标,了解平台的整体运营情况。系统用户管理功能使管理员能够有效管理注册用户的信息,保证数据的安全性和准确性。通过轮播图管理和通知公告管理,管理员可以更新网站内容,及时传达重要信息给用户。资源管理和交流管理则帮助管理员保持新闻资讯的时效性,并维护良好的社区环境。最后,商城管理模块让管理员能够全面控制商品和订单流程,从添加新产品到处理配送问题,确保业务顺畅运行。管理员角色用例图如下所示。

图3-2 管理员用例图
系统非功能需求指的是性能需求,即对一个系统的性能需求进行分析和定义的过程。在进行性能需求分析时,因此电子商务消费者推荐系统的设计与实现主要需要考虑以下几个方面的性能需求:
响应时间:响应时间是指系统在接收到请求后,作出响应的时间。根据具体的业务需求和用户体验要求,可以确定系统在不同场景下的响应时间要求。
吞吐量:吞吐量是指系统在一定时间内处理的事务或请求的数量。根据业务需求和用户量的估计,可以确定系统需要支持的最大吞吐量。
并发用户数:并发用户数是指系统在同时使用的用户数量。根据预期的用户量和并发访问需求,可以确定系统需要支持的最大并发用户数。
可扩展性:可扩展性是指系统在面对用户量增加或并发访问需求增加时,能否通过增加硬件资源或调整系统架构来满足需求。根据预期的用户增长和扩展计划,可以确定系统需要具备的可扩展性要求。
故障处理能力:系统对故障的处理能力是指在出现错误或故障时,系统能够快速、准确地识别、定位并处理故障的能力。根据业务的重要性和对故障处理的要求,可以确定系统需要具备的故障处理能力。
安全性:系统在性能需求分析中,也需考虑安全方面的需求,如数据的保密性、完整性和可用性等。根据具体的安全需求和合规要求,可以确定系统需要满足的安全性需求。
通过对这些性能需求进行详细分析和定义,可以为电子商务消费者推荐系统的设计和开发提供指导,确保系统在满足预期的性能需求的同时,具备良好的性能和可靠性。
用户注册登录模块主要是为了方便用户和管理员能够安全地访问系统并管理自己的信息。用户通过浏览器访问电子商务消费者推荐系统,首先进入的是系统的登录页面。在登录页面,用户可以选择自己的账户角色,并输入相应的账号和密码。系统接收到用户的登录请求后,会将提供的账号和密码与数据库中存储的信息进行比对。如果账号或密码为空或者不匹配,则提示用户重新输入,并停留在登录界面。当账号和密码正确无误时,系统根据用户类型跳转到对应的首页界面。用户注册登录流程如下图所示。
图3-3 用户注册登录流程图
用户购买服装商品的流程始于访问系统主页,通过浏览商品列表或使用搜索功能找到目标商品。在商品详情页,用户可查看商品图片、价格、库存等信息,可以在领取优惠后并选择规格后将商品加入购物车或直接下单。进入购物车后,用户可以调整商品数量、删除不需要的商品,并在确认无误后进入结算页面。在此阶段,用户需填写收货地址、选择支付方式并提交订单。支付完成后,用户可在“我的订单”中查看订单状态。用户购买服装商品流程图如下图所示。

图3-4 购买服装商品流程图
管理员对服装商城的管理流程包括商品的新增、编辑、上下架以及分类维护等多个环节。首先,管理员通过后台管理系统录入商品基本信息,如名称、价格、库存、规格、简介等,并上传商品图片。接着,管理员根据商品类别将其归类,确保商品展示逻辑清晰。在商品上架前,管理员还需审核商品信息的完整性和准确性。当商品需要下架或更新时,管理员可通过编辑功能修改商品详情或直接将其下架。此外,管理员还可以批量导入商品数据以提高效率,并定期检查商品库存状态,及时补充或调整相关信息,确保平台商品信息的实时性和有效性。管理员服装商城管理流程图如下图所示。

图3-5 管理员服装商城管理流程图
电子商务消费者推荐系统的架构设计包括客户端、服务器端、第三方集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面。客户端通过Web浏览器访问系统,而服务器端负责接收和处理请求,并提供功能和数据。系统采用分层架构,包括表现层、业务逻辑层、数据访问层和数据库。同时,系统需考虑与其他系统的集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面的问题。这样的架构设计将确保系统的稳定性、可扩展性和安全性,为用户提供稳定、高效的使用体验。系统架构图如下图所示。

图4-1 系统架构图
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统总体功能模块图如下图所示。

图4-2 系统功能模块图
借助先进的系统,E-R图使其他用户可以快速轻松地了解系统的功能以及他们之间的关系。根据电子商务消费者推荐系统分析结果,本电子商务消费者推荐系统总体E-R图如下图所示。
图4-3 系统总体E-R图
所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,电子商务消费者推荐系统的总体设计和实施过程一共涉及到了几个资料表格。
根据E-R图,建立各个实体的数据表。由于本系统数据库数据表数量较多,所以只选取部分表单作为案列,如下所示:
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-address(收货地址)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | address_id | int | 是 | 是 | 收货地址 | |
| 2 | name | varchar | 32 | 否 | 否 | 姓名 |
| 3 | phone | varchar | 13 | 否 | 否 | 手机 |
| 4 | postcode | varchar | 8 | 否 | 否 | 邮编 |
| 5 | address | varchar | 255 | 是 | 否 | 地址 |
| 6 | user_id | mediumint | 是 | 否 | 用户ID | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | default | tinyint | 是 | 否 | 默认判断 |
表 4-3-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-4-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-cart(购物车)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cart_id | int | 是 | 是 | 购物车ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | img | varchar | 255 | 是 | 否 | 图片 |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | state | int | 是 | 否 | 状态:使用中,已失效 | |
| 8 | price | double | 是 | 否 | 单价 | |
| 9 | price_ago | double | 是 | 否 | 原价 | |
| 10 | price_count | double | 是 | 否 | 总价 | |
| 11 | num | int | 是 | 否 | 数量 | |
| 12 | goods_id | mediumint | 是 | 是 | 商品id | |
| 13 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | description | varchar | 255 | 否 | 否 | 描述 |
表 4-7-clothing_mall(服装商城)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | clothing_mall_id | int | 是 | 是 | 服装商城ID | |
| 2 | instructions_for_placing_orders | varchar | 64 | 否 | 否 | 下单须知 |
| 3 | hits | int | 是 | 否 | 点击数 | |
| 4 | collect_len | int | 是 | 否 | 收藏数 | |
| 5 | comment_len | int | 是 | 否 | 评论数 | |
| 6 | recommend | int | 是 | 否 | 智能推荐 | |
| 7 | cart_title | varchar | 125 | 否 | 否 | 标题 |
| 8 | cart_img | text | 65535 | 否 | 否 | 封面图 |
| 9 | cart_description | varchar | 255 | 否 | 否 | 描述 |
| 10 | cart_price_ago | double | 是 | 否 | 原价 | |
| 11 | cart_price | double | 是 | 否 | 卖价 | |
| 12 | cart_inventory | int | 是 | 否 | 商品库存 | |
| 13 | cart_type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | cart_content | longtext | 4294967295 | 否 | 否 | 正文 |
| 15 | cart_img_1 | text | 65535 | 否 | 否 | 主图1 |
| 16 | cart_img_2 | text | 65535 | 否 | 否 | 主图2 |
| 17 | cart_img_3 | text | 65535 | 否 | 否 | 主图3 |
| 18 | cart_img_4 | text | 65535 | 否 | 否 | 主图4 |
| 19 | cart_img_5 | text | 65535 | 否 | 否 | 主图5 |
| 20 | create_time | datetime | 是 | 否 | 创建时间 | |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-8-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-10-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID |
表 4-11-coupon(优惠券)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | coupon_id | int | 是 | 是 | 优惠券ID | |
| 2 | coupon_user_id | int | 否 | 否 | 优惠券用户ID | |
| 3 | coupon_user_auth | varchar | 255 | 否 | 否 | 优惠券用户 |
| 4 | coupon_name | varchar | 255 | 否 | 否 | 优惠券名称 |
| 5 | coupon_price | int | 否 | 否 | 优惠券价格 | |
| 6 | coupon_price1 | int | 否 | 否 | 优惠券券后价格 | |
| 7 | coupon_time | varchar | 255 | 否 | 否 | 优惠券时间 |
| 8 | coupon_type | varchar | 255 | 否 | 否 | 优惠券类型 |
| 9 | create_time | timestamp | 否 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 否 | 否 | 更新时间 |
表 4-12-coupon_user(用户优惠券)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | id | int | 是 | 是 | 用户优惠券ID | |
| 2 | user_id | int | 否 | 否 | 用户ID | |
| 3 | coupon_id | int | 否 | 否 | 优惠券ID | |
| 4 | is_use | int | 否 | 否 | 是否使用 | |
| 5 | coupon_user_id | int | 否 | 否 | 用户优惠券ID |
表 4-13-forum(论坛)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | forum_id | mediumint | 是 | 是 | 论坛ID | |
| 2 | display | smallint | 是 | 否 | 排序 | |
| 3 | user_id | mediumint | 是 | 否 | 用户ID | |
| 4 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 5 | praise_len | int | 否 | 否 | 点赞数 | |
| 6 | hits | int | 是 | 否 | 访问数 | |
| 7 | title | varchar | 125 | 是 | 否 | 标题 |
| 8 | keywords | varchar | 125 | 否 | 否 | 关键词 |
| 9 | description | varchar | 255 | 否 | 否 | 描述 |
| 10 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 11 | tag | varchar | 255 | 否 | 否 | 标签 |
| 12 | img | text | 65535 | 否 | 否 | 封面图 |
| 13 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 15 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 16 | avatar | varchar | 255 | 否 | 否 | 发帖人头像 |
| 17 | type | varchar | 64 | 是 | 否 | 论坛分类 |
| 18 | istop | int | 是 | 否 | 是否置顶 |
表 4-14-forum_type(论坛分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 3 | description | varchar | 255 | 否 | 否 | 描述 |
| 4 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 5 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 6 | icon | varchar | 255 | 否 | 否 | 分类图标 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-goods(商品信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | goods_id | mediumint | 是 | 是 | 产品ID | |
| 2 | title | varchar | 125 | 否 | 否 | 标题 |
| 3 | img | text | 65535 | 否 | 否 | 封面图:用于显示于产品列表页 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | price_ago | double | 是 | 否 | 原价 | |
| 6 | price | double | 是 | 否 | 卖价 | |
| 7 | sales | int | 是 | 否 | 销量 | |
| 8 | inventory | int | 是 | 否 | 商品库存 | |
| 9 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 10 | hits | int | 是 | 否 | 点击量 | |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img_1 | text | 65535 | 否 | 否 | 主图1 |
| 13 | img_2 | text | 65535 | 否 | 否 | 主图2 |
| 14 | img_3 | text | 65535 | 否 | 否 | 主图3 |
| 15 | img_4 | text | 65535 | 否 | 否 | 主图4 |
| 16 | img_5 | text | 65535 | 否 | 否 | 主图5 |
| 17 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | customize_field | text | 65535 | 否 | 否 | 自定义字段 |
| 20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 21 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 22 | source_id | int | 是 | 否 | 来源ID | |
| 23 | user_id | int | 否 | 否 | 添加人 |
表 4-16-goods_type(商品类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | int | 是 | 是 | 商品分类ID | |
| 2 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 3 | name | varchar | 255 | 否 | 否 | 商品名称 |
| 4 | desc | varchar | 255 | 否 | 否 | 描述 |
| 5 | icon | varchar | 255 | 否 | 否 | 图标 |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-17-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-18-logistics_delivery(物流配送)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | logistics_delivery_id | int | 是 | 是 | 物流配送ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
| 4 | purchase_quantity | varchar | 64 | 否 | 否 | 购买数量 |
| 5 | total_transaction_amount | double | 否 | 否 | 交易总额 | |
| 6 | the_date_of_issuance | date | 否 | 否 | 发货日期 | |
| 7 | delivery_number | varchar | 30 | 否 | 否 | 配送订单 |
| 8 | ordinary_users | int | 否 | 否 | 普通用户 | |
| 9 | shipping_address | varchar | 64 | 否 | 否 | 收货地址 |
| 10 | delivery_status | varchar | 64 | 否 | 否 | 配送状态 |
| 11 | signing_status | varchar | 64 | 否 | 否 | 签收状态 |
| 12 | recommend | int | 是 | 否 | 智能推荐 | |
| 13 | contact_name | varchar | 255 | 否 | 否 | 联系人名字 |
| 14 | merchant_id | int | 否 | 否 | 商家id | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-19-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-20-order(订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | order_id | int | 是 | 是 | 订单ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | goods_id | mediumint | 是 | 是 | 商品ID | |
| 4 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 5 | img | varchar | 255 | 否 | 否 | 商品图片 |
| 6 | price | double | 是 | 否 | 价格 | |
| 7 | price_ago | double | 是 | 否 | 原价 | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | price_count | double | 是 | 否 | 总价 | |
| 10 | norms | varchar | 255 | 否 | 否 | 规格 |
| 11 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 12 | contact_name | varchar | 32 | 否 | 否 | 联系人姓名 |
| 13 | contact_email | varchar | 125 | 否 | 否 | 联系人邮箱 |
| 14 | contact_phone | varchar | 11 | 否 | 否 | 联系人手机 |
| 15 | contact_address | varchar | 255 | 否 | 否 | 收件地址 |
| 16 | postal_code | varchar | 9 | 否 | 否 | 邮政编码 |
| 17 | user_id | int | 是 | 否 | 买家ID | |
| 18 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 19 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 21 | description | varchar | 255 | 否 | 否 | 描述 |
| 22 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 否 | 否 | 订单备注 |
| 24 | delivery_state | varchar | 16 | 否 | 否 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 否 | 否 | 折扣 |
表 4-21-ordinary_user(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | ordinary_user_id | int | 是 | 是 | 普通用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | users_mobile_phone | varchar | 16 | 否 | 否 | 用户手机 |
| 5 | user_age | varchar | 64 | 否 | 否 | 用户年龄 |
| 6 | user_occupation | varchar | 64 | 否 | 否 | 用户职业 |
| 7 | height_information | varchar | 64 | 否 | 否 | 身高信息 |
| 8 | weight_information | varchar | 64 | 否 | 否 | 体重信息 |
| 9 | three_circumference_information | varchar | 64 | 否 | 否 | 三围信息 |
| 10 | style_preference | varchar | 64 | 否 | 否 | 风格偏好 |
| 11 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 12 | user_id | int | 是 | 否 | 用户ID | |
| 13 | create_time | datetime | 是 | 否 | 创建时间 | |
| 14 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-22-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 |
表 4-23-score(评分)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | score_id | int | 是 | 是 | 评分ID | |
| 2 | user_id | int | 是 | 否 | 评分人 | |
| 3 | nickname | varchar | 64 | 否 | 否 | 昵称 |
| 4 | score_num | double | 是 | 否 | 评分 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 9 | source_id | int | 是 | 否 | 来源ID |
表 4-24-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-25-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-26-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-27-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
用户可以通过注册功能创建个人账号,填写包括用户名、密码、邮箱或手机号等基本信息完成注册流程。系统会对输入信息进行校验,确保唯一性和格式正确性,并将用户数据存储至数据库中,同时发送验证邮件或短信以确认账户有效性。用户注册界面如下图所示。
图5-1 用户注册界面
系统前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名、密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。
图5-2 用户登录界面
首页作为用户进入系统的首要界面,集成了通知公告、热门新闻资讯以及精选服装商品推荐,旨在为用户提供一站式的便捷访问入口。通过动态展示最新活动和优惠信息,吸引用户的注意力并引导其进行进一步的浏览或购买操作。前台首页界面如下图所示。
图5-3 前台首页界面
交流中心的设计旨在促进用户之间的互动与信息共享,增强社区氛围。用户可以轻松发布帖子分享购物心得或提出问题,并通过回复功能与其他用户进行深入讨论。交流中心界面如下图所示。
图5-4 交流中心界面
通知公告模块主要用于发布平台最新的消息和重要通知,如服务更新、促销活动等,确保用户能够及时获取关键信息。用户登录后可在首页直接查看到最新公告,同时也可以进入公告详情页了解更多信息。此功能帮助提高了信息透明度,增强了用户的参与感和信任度。通知公告界面如下图所示。
图5-5 通知公告界面
新闻资讯模块专注于提供行业内最新鲜、最相关的资讯内容,帮助用户紧跟市场趋势。用户不仅可以浏览由管理员定期更新的文章,还能依据自身偏好选择感兴趣的分类订阅,如新品发布、品牌故事等。每篇文章下方设有评论区,鼓励用户发表看法,增加互动性。整个界面设计注重用户体验,保证阅读流畅性和视觉舒适度。新闻资讯界面如下图所示。
图5-6 新闻资讯界面
服装商城是用户选购商品的核心区域,提供了丰富的搜索和筛选工具,让用户能快速定位心仪的商品。除了基本的分类浏览外,用户还可以利用关键词搜索、价格区间过滤等功能细化查找条件。每个商品详情页都包含详尽的产品描述、多角度图片及用户评价,辅助用户做出购买决定。此外,结合大语言模型技术,系统还能根据用户的浏览历史推荐相似或互补的商品,提升购物体验。服装商城展示界面如下图所示。
图5-7 服装商品展示界面
优惠券领取界面如下图所示。
图5-8 优惠券领取界面
订单支付界面如下图所示。
图5-9 订单支付界面
商城管理模块包括我的购物车、我的订单、我的地址、我的优惠券四个子模块,为用户提供了一套完整的购物流程管理工具。在“我的购物车”中,用户可以查看已选商品、修改数量或移除商品,并可直接前往结算。我的购物车界面如下图所示。
图5-10 我的购物车界面
“我的订单”则让用户能够追踪订单状态、查看历史订单详情并进行售后申请。我的订单界面如下图所示。
图5-11 我的订单界面
“我的地址”允许用户维护多个收货地址,设置默认地址,确保每次购物时都能准确无误地收到商品。我的地址界面如下图所示。
图5-12 我的地址界面
个人中心作为用户管理个人信息及购物记录的主要入口,集成了多项实用功能。在这里,用户可以查看并编辑个人资料、管理收货地址、追踪订单状态以及处理退货申请等。特别的是,“我的收藏”和“评论管理”子模块让用户能够保存喜欢的商品以便日后购买,并对已购商品进行评价或回复其他用户的评论,增强了用户的参与感和满意度。整体布局清晰明了,便于用户快速找到所需服务。用户个人中心界面如下图所示。
图5-13 用户个人中心界面
后台登录模块为管理员提供了安全的身份验证入口,确保只有授权用户能够访问系统后台。通过输入正确的用户名和密码,并经过系统的身份验证流程,管理员可以成功登录到后台管理系统,保障了数据的安全性和系统的稳定性。后台登录界面如下图所示。
后台首页模块为管理员提供了一个全面的概览界面,集成了关键业务指标如商品销售金额统计、商品销售数量统计等图表展示功能,帮助管理员快速了解当前业务状况并据此做出决策。后台首页界面如下图所示。
图5-15 后台首页界面
系统用户模块用于管理员对普通用户和管理员账号进行统一管理,包括新增、编辑、删除用户信息以及调整用户权限状态。管理员可以通过搜索功能快速定位目标用户,模块还支持用户状态管理,确保系统的安全性与规范性。系统用户界面如下图所示。
图5-16 系统用户界面
轮播图模块为管理员提供管理首页展示内容的功能,支持上传图片、设置链接地址以及调整显示顺序。管理员可以通过该模块灵活更新平台的宣传内容,吸引更多用户关注。系统通过后端接口将数据存储至数据库,确保前端展示效果与后台配置一致。轮播图管理界面如下图所示。
图5-17 轮播图管理界面
通知公告管理模块让管理员可以发布、编辑和删除面向全体用户的通知公告,确保重要通知和信息能够及时传达给每一位用户。通知公告管理界面如下图所示。
图5-18 通知公告管理界面
资源管理模块主要用于管理和发布新闻资讯及分类信息,帮助管理员丰富平台内容。管理员可以创建、编辑或删除新闻资讯,并对资讯进行分类管理,确保内容组织清晰有序。资源管理界面如下图所示。
图5-19 资源管理界面
交流管理模块提供了监督和管理用户间互动的功能,管理员可以通过监控用户在交流中心发布的帖子和评论,及时发现并处理不当行为或敏感话题,维持一个积极健康的社区环境。此模块还包括举报处理机制,管理员可以根据用户反馈迅速采取相应措施,保障社区秩序。交流管理界面如下图所示。
图5-20 交流管理界面
商城管理模块涵盖了从商品信息发布到订单处理的全流程管理,管理员可以方便地添加新商品、编辑现有商品详情、调整库存状态,甚至直接处理客户订单和物流问题。此外,该模块还包含优惠券设计与发放功能,通过灵活的营销策略促进销售,提高用户满意度和忠诚度。整体设计注重操作简便性和管理效率,助力管理员高效运营电商平台。服装商城管理界面如下图所示。
图5-21 服装商城管理界面
分类列表界面如下图所示。
图5-22 分类列表界面
订单列表界面如下图所示。
图5-23 订单列表界面
订单配送界面如下图所示。
图5-24 订单配送界面
优惠券界面如下图所示。
图5-25 优惠券界面
在对该系统进行完详细设计和编码之后,就要对电子商务消费者推荐系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。
对以下功能进行测试,包括包括用户注册、用户登录、服装商品搜索、服装商品查看、服装商品添加、服装商品购买,具体测试用例如下表所示。
表6-1 用户注册测试用例表
| 用例编号 | 用例名称 | 测试步骤 | 测试结果 |
| 6-1 | 用户注册 | 1. 输入有效注册信息,包括用户名、密码和联系方式。 | 注册成功,系统保存用户信息。 |
| 2. 点击注册按钮进行提交。 | 跳转至登录页面。 | ||
| 3. 检查是否成功注册并跳转至登录页面。 | 用户成功注册,可以登录使用。 |
表6-2 用户登录测试用例表
| 用例编号 | 用例名称 | 测试步骤 | 测试结果 |
| 6-2 | 用户登录 | 1. 输入正确用户名和密码。 | 登录成功,系统验证通过。 |
| 2. 点击登录按钮进行验证。 | 跳转至用户首页。 | ||
| 3. 检查是否成功登录并跳转至用户首页。 | 用户成功登录,进入用户首页。 |
表6-3 服装商品搜索测试用例表
| 用例编号 | 用例名称 | 测试步骤 | 测试结果 |
| 6-3 | 服装商品搜索 | 1. 在搜索框输入关键词,如商品名称。 | 显示相关商品列表。 |
| 2. 点击搜索按钮进行搜索。 | 匹配关键词的服装商品显示在搜索结果中。 | ||
| 3. 检查是否显示相关服装商品列表。 | 用户看到与搜索关键词匹配的服装商品。 |
表6-4 服装商品查看测试用例表
| 用例编号 | 用例名称 | 测试步骤 | 测试结果 |
| 6-3 | 服装商品搜索 | 1. 点击服装商品。 | 显示所有服装商品列表。 |
| 2. 进入详情页浏览。 | 展示服装商品详情页。 | ||
| 3. 检查是否显示服装商品是否正常展示。 | 服装商品展示正常。 |
表6-5 服装商品添加测试用例表
| 用例编号 | 用例名称 | 测试步骤 | 测试结果 |
| 6-4 | 服装商品添加 | 1. 进入后台服装商城管理界面,点击添加按钮。 | 显示服装商品信息添加页面。 |
| 2. 正确填写并提交相关信息。 | 信息填写完整准确。 | ||
| 3. 检查是否提交成功,并检查服装商品信息是否成功添加至平台。 | 服装商品信息成功添加至平台。 |
表6-6 服装商品购买测试用例表
| 用例编号 | 用例名称 | 测试步骤 | 测试结果 |
| 6-4 | 服装商品购买 | 1. 进入前台服装商城详情页,点击购买按钮。 | 显示服装商品信息页面。 |
| 2. 用户正确填写并提交订单相关信息。 | 订单信息填写完整准确。 | ||
| 3. 检查是否提交并支付成功,并检查订单信息是否成功添加至平台。 | 订单信息成功添加至平台,可在个人中心-我的订单列表中查看。 |
经过对用户注册、用户登录、服装商品搜索、服装商品查看、服装商品添加、服装商品购买等功能的测试,系统表现稳定,用户注册流程顺畅,登录验证准确,服装商品搜索、查看、添加功能有效,服装商品购买信息流程顺利。各项功能符合预期,用户可以顺利注册登录,选择所需服装商品进行浏览,可以成功发布购买服装商品生成订单信息。系统运行良好,用户体验良好,功能完善。
结 论
网络大环境下,电子商务的商业模式已经遍及全国各地,由于人们生活水平的提高以及生活节奏的加快,让人们也已经爱上这种购物模式。本次开发的电子商务消费者推荐系统即是基于目前电子商务模式而建设的,其开发目的是给用户提供一个全新的服装交易环境,提高用户购物的体验度,系统的开发不仅可以实现服装的购买、销售,还能提高经济。
基于大语言模型的电子商务消费者推荐系统的设计与实现使用的开发环境是功能强大的Flask、Python技术,在大学的学科中重点学习了这几种技术,在对这些技术学习、熟悉之后,结合对系统进行的需求分析顺利的完成了本次项目的设计。在最初接到任务书的那一刻,比较迷茫,没有任何的思路,在经过了老师的指导以后,调查了一些线上外卖平台相关的资料后,慢慢的有了头绪,开始入手开题,明确了系统的内容,对系统进行可行性的分析,确定系统可行以及功能内容以后,就按照开题初步设计的内容进行完善,慢慢补充、学习,最终结束了程序的开发,也完成了论文的写作。这一过程,虽然艰辛,但也学习到了很多,对项目开发流程也有了一个新的认识,动手能力也得到了提高,这正是书本上所学习不到的。
经过开发本项目,让我非常有成就,与此同时我对程序的开发更加感兴趣了,信息技术真的很强大,也很深奥,在以后工作中,我将会寻找与其相关工作,继续深入学习,开发出更优秀的项目。
参考文献
- 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
- 肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.
- 黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.
- 明日科技.Python Web开发手册[M].化学工业出版社:202201.411.
- 虞菊花,乔虹.基于Python的Web页面自动登录工具设计与实现[J].安徽电子信息职业技术学院学报,2023,22(03):19-22+28.
- 李朝杨.Flask应用的XSS和CSRF漏洞检测方法研究[D].华北理工大学,2023.
- 李辉.Flask Web开发实战[M].机械工业出版社:202301.1354.
- 宋佳磊,左兴权,张修建,等.大语言模型评估方法综述[J/OL].宇航计测技术,1-30[2025-03-26].
- Wang L ,Zhang S R ,Zhang X C .Live streaming E-commerce platform characteristics: Influencing consumer value co-creation and co-destruction behavior[J].Acta Psychologica,2024,243104163-.
- Wang Y ,Sun B ,Zhang T , et al.Can polycentric cities provide more and higher-order consumer amenities? Evidence from shopping malls in China[J].Applied Geography,2024,164103198-.
- Matsuoka Y ,Yoshida H ,Hanazato M .A Smartphone-Based Shopping Mall Walking Program and Daily Walking Steps.[J].JAMA network open,2024,7(1):e2353957-e2353957.
- 李翔.网络直播时代服装行业线上营销模式分析[J].化纤与纺织技术,2023,52(09):79-81.
- 胡鑫.新媒体时代服装行业营销策略探析[J].西部皮革,2023,45(10):12-14.
- 王嘉雯.基于线上线下双渠道销售的服装企业定价决策与预售策略研究[D].东华大学,2023.
- 张翠,曲洪建,钱佳韵.线上服装产品体验对消费者再购意愿的影响[J].毛纺科技,2023,51(04):55-61.
- 郭香梅,李沛,曹春祥.“线下+线上”交互式体验对服装购买意愿的影响[J].毛纺科技,2023,51(03):57-65.
- 江柳婵,王晨宇,李梓桓,等.基于互联网的服装个性化定制平台构建[J].无线互联科技,2023,20(03):39-42.
- [10]任建新,王一鸣,李鑫,等.基于Java Web的智慧商城购物系统设计[J].信息技术与信息化,2022,(07):23-27.
- 甘宁.互联网时代B2C电子商城购物网站的应用与测试[J].信息与电脑(理论版),2021,33(14):98-100.
- 何贵涛.A线上购物商城服务营销优化研究[D].广西大学,2021.
致 谢
在这篇论文即将完成之际,我想用真挚的心意向一些特别的人们表达我的感激之情。
我要衷心感谢我的父母和家人。他们一直以来给予我无私的支持和鼓励,是我坚强的后盾。他们的理解与支持让我能够专注于学业,并为我提供了一个温暖的家庭环境。没有他们,我无法顺利完成这篇论文。
接下来,我要感谢我的导师。感谢您在整个研究过程中给予我的耐心指导和宝贵建议。您的专业知识和经验对我产生了深远的影响。您的教诲和指导使我能够更好地理解和运用所学知识,在研究中取得了显著的进展。我非常感激您的辛勤付出和悉心指导。
此外,我要感谢我的同学和朋友们。在这段学习旅程中,你们给予了我无尽的支持和鼓励。我们一起度过了难忘的时光,互相帮助、相互学习。你们的智慧和见解为我提供了新的思路和灵感,使我的论文更加丰富和有深度。
最后,我要感谢所有为这篇论文提供支持和帮助的人们,包括实验室的工作人员、图书馆的工作人员以及其他相关专业领域的专家和学者。你们的专业知识和资源为我的研究提供了重要的支持和参考,使我能够深入探索和展示我的观点。
在完成这篇论文的过程中,我不仅获得了学术上的收获,还结交了许多宝贵的友谊和支持。再次向所有给予我帮助和支持的人们表示衷心的感谢!
附 录
def Login(self, ctx):
"""
登录API
@param {Object} ctx http请求上下文
"""
print("===================登录=====================")
ret = {
"error": {
"code": 70000,
"message": "账户不存在",
}
}
body = ctx.body
# 获取用户
password = md5hash(body["password"]) or ""
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if obj:
# 检查用户所属用户组
user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})
if user_group and user_group['source_table'] != '':
user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']},
{"like": False})
if user_obj['examine_state'] == '未通过':
ret = {
"error": {
"code": 70000,
"message": "账户未通过审核",
}
}
return ret
if user_obj['examine_state'] == '未审核':
ret = {
"error": {
"code": 70000,
"message": "账户未审核",
}
}
return ret
# 校验用户状态
if obj["state"] == 1:
# 校验密码
if obj["password"] == password:
# 生成Token
timeout = datetime.now(tz=timezone.utc)
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
# 存储Token
# session[token] = obj["user_id"]
session.setdefault(token, obj["user_id"])
session.permanent = True
service_select("access_token").Add(
{"token": token, "user_id": obj["user_id"]}
)
# 回传用户
obj["token"] = token
ret = {
"result": {"obj": obj}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "用户账户不可用,请联系管理员",
}
}
return ret
# 用户类
class User(controllerClass):
def __init__(self, config={}):
"""
构造函数
@param {Object} config 配置参数
"""
config_init = {
# 选择的模板那路径模板
"tpl": "./user/",
# 选择的服务
"services": "user",
# 注册API
"get_api": ["state", "quit"],
"post_api": ["login", "register", "change_password", "forget_password"],
# 唯一判断
"unique": ["username"]
}
config_temp = config
config_temp.update(config_init)
super(User, self).__init__(config_temp)
def Register(self, ctx):
"""
注册API
@param {Object} config 配置参数
"""
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
# 判断必须信息
if "username" not in body and body["username"] == '':
return {"error": {
"code": 70000,
"message": "用户名不能为空",
}}
if "user_group" not in body and body["user_group"] == '':
return {
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}
if "password" not in body and body["password"] == '':
return {
"error": {
"code": 70000,
"message": "密码不能为空",
}
}
# 取出表单
post_param = body
post_param['nickname'] = body["nickname"] or ""
post_param['password'] = md5hash(body["password"])
# 校验是否存在用户
obj = userService.Get_obj({"username": post_param['username']}, {"like": False})
if obj:
return {
"error": {
"code": 70000,
"message": "用户名已存在",
}
}
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
# 添加
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ret
def Forget_password(self, ctx):
"""
找回密码API
@param {Object} config 配置参数
"""
print("===================修改密码=====================")
ret = {
"error": {
"code": 70000,
"message": "用户信息不能没有"
}
}
body = ctx.body
if not body["code"]:
return {
"error": {
"code": 70000,
"message": "验证码不存在或者错误"
}
}
# 获取用户
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if not obj:
return {
"error": {
"code": 70000,
"message": "用户名不存在或者错误"
}
}
password = md5hash(body["password"])
if not password:
return {
"error": {
"code": 70000,
"message": "密码不存在或者错误"
}
}
def Change_password(self, ctx):
"""
修改密码API
@param {Object} config 配置参数
"""
print("===================修改密码=====================")
ret = {
"error": {
"code": 70000,
"message": "账号未登录",
}
}
request = ctx.request
headers = request.headers
# 判断Token
if ("x-auth-token" in headers) and headers["x-auth-token"]:
token = headers["x-auth-token"]
user_id = tokenGetUserId(token, request)
userService = service_select("user")
# 获取密码和新密码
body = ctx.body
password = md5hash(body["o_password"])
# 判断用户密码是否正确
obj = userService.Get_obj({"user_id": user_id, "password": password}, {"like": False})
if obj:
# 修改密码并返回结果
password = md5hash(body["password"])
bl = userService.Set({"user_id": user_id}, {"password": password})
if bl:
ret = {"result": {"bl": True, "message": "修改成功"}}
else:
ret = {
"error": {
"code": 70000,
"message": "修改失败",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "账户未登录",
}
}
return ret
def Add(self, ctx):
"""
增
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
body = ctx.body
unique = self.config.get("unique")
obj = None
if unique:
qy = {}
for i in range(len(unique)):
key = unique[i]
qy[key] = body.get(key)
obj = self.service.Get_obj(qy)
if not obj:
# 添加数据前
error = self.Add_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("add_before", ctx, None)
if error["code"]:
return {"error": error}
# 添加数据
result = self.service.Add(body, self.config)
# 添加数据发生错误
if self.service.error:
return {"error": self.service.error}
# 添加数据成功后
res = self.Add_after(ctx, result)
if res:
result = res
res = self.Events("add_after", ctx, result)
if res:
result = res
return {"result": result}
else:
return {"error": {"code": 10000, "message": "已存在"}}
# 删
def Del(self, ctx):
"""
删
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
if len(ctx.query) == 0:
errorMsg = {"code": 30000, "message": "删除条件不能为空!"}
return errorMsg
result = self.service.Del(ctx.query, self.config)
if self.service.error:
return {"error": self.service.error}
return {"result": result}
# 改
def Set(self, ctx):
"""
改
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
# 修改数据前
error = self.Set_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("set_before", ctx, None)
if error["code"]:
return {"error": error}
query = ctx.query
if 'page' in query.keys():
del ctx.query['page']
if 'size' in query.keys():
del ctx.query['size']
if 'orderby' in query.keys():
del ctx.query['orderby']
# 修改数据
result = self.service.Set(ctx.query, ctx.body, self.config)
# 修改数据发生错误
if self.service.error:
return {"error": self.service.error}
# 修改数据成功后
res = self.Set_after(ctx, result)
if res:
result = res
res = self.Events("set_after", ctx, result)
if res:
result = res
return {"result": result}
def Get_list(self, ctx):
"""
查多条
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
query = dict(ctx.query)
config_plus = {}
if "field" in query:
field = query.pop("field")
config_plus["field"] = field
if "page" in query:
config_plus["page"] = query.pop("page")
if "size" in query:
config_plus["size"] = query.pop("size")
if "orderby" in query:
config_plus["orderby"] = query.pop("orderby")
if "like" in query:
config_plus["like"] = query.pop("like")
if "groupby" in query:
config_plus["groupby"] = query.pop("groupby")
count = self.service.Count(query)
lst = []
if self.service.error:
return {"error": self.service.error}
elif count:
lst = self.service.Get_list(query,
obj_update(self.config, config_plus))
if self.service.error:
return {"error": self.service.error}
self.interact_list(ctx, lst)
return {"result": {"list": lst, "count": count}}
def Get_obj(self, ctx):
"""
查一条
@param {Object} ctx http请求上下文
@return {Object} 返回json-rpc格式结果
"""
query = dict(ctx.query)
config_plus = {}
if "field" in query:
field = query.pop("field")
config_plus["field"] = field
obj = self.service.Get_obj(query, obj_update(self.config, config_plus))
if self.service.error:
return {"error": self.service.error}
if obj:
self.interact_obj(ctx, obj)
return {"result": {"obj": obj}}
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
Flask电商推荐系统开发与实践
2982

被折叠的 条评论
为什么被折叠?



