基于Spark的NBA球员数据分析系统的设计与实现-附源码84165
该平台基于spark框架、前端使用python等先进的编程语言,能够提供出色的动画效果,满足大多数消费者的视觉需求。后端使用Mysql、spark架构、AJAX异步交互,能够更好地满足消费者的需求,同时还能够提高数据的安全性、稳健性,从而更好地满足消费者的需求,实现了系统用户、通知公告、数据信息、得分分析、篮板分析、助攻分析、盖帽分析、抢断分析、球队3分分析、球队2分分析等核心功能,满足了NBA球
摘 要
本文阐述了一个基于spark框架的NBA球员数据分析系统的设计与实现过程。该平台充分利用spark的轻量级、灵活性和可扩展性,旨在为企业提供高效、便捷的管理解决方案。通过详细的需求分析、技术选型、系统设计、开发实现、测试与调试以及部署与上线等步骤,我们构建了一个功能丰富、性能稳定的NBA球员数据分析系统。
该平台基于spark框架、前端使用python等先进的编程语言,能够提供出色的动画效果,满足大多数消费者的视觉需求。后端使用Mysql、spark架构、AJAX异步交互,能够更好地满足消费者的需求,同时还能够提高数据的安全性、稳健性,从而更好地满足消费者的需求,实现了系统用户、通知公告、数据信息、得分分析、篮板分析、助攻分析、盖帽分析、抢断分析、球队3分分析、球队2分分析等核心功能,满足了NBA球员数据分析系统的多样化需求。通过该平台的使用,NBA球员数据分析系统可以提高工作效率、优化资源配置、加强团队协作,从而推动NBA球员数据分析系统的持续发展。本文的研究成果不仅为类似系统的开发提供了有价值的参考,也为NBA球员数据分析系统的创新与发展提供了新的思路和方法。
关键词:NBA球员数据分析系统;spark框架;Mysql
Spark NBA player data analysis system
Abstract
This paper elucidates the design and implementation process of an NBA player data analysis system based on the Spark framework. This platform fully leverages the lightweight, flexibility, and scalability of Spark, aiming to provide efficient and convenient management solutions for enterprises. Through detailed steps including requirement analysis, technology selection, system design, development, testing and debugging, as well as deployment and release, we have constructed a feature-rich and performance-stable NBA player data analysis system.
The platform is built on the Spark framework, with Python and other advanced programming languages used for the front-end, providing outstanding animation effects that cater to the visual demands of most consumers. The back-end utilizes MySQL, Spark architecture, and AJAX asynchronous interaction, enabling better satisfaction of consumer needs while enhancing data security and robustness. This system encompasses core functionalities such as user management, notification announcements, data information, scoring analysis, rebound analysis, assist analysis, block analysis, steal analysis, team three-point analysis, and team two-point analysis, meeting the diverse requirements of an NBA player data analysis system.
By utilizing this platform, the NBA player data analysis system can enhance work efficiency, optimize resource allocation, and strengthen team collaboration, thereby facilitating the continuous development of the NBA player data analysis system. The research findings of this paper not only provide valuable references for similar system development but also offer new ideas and methods for the innovation and advancement of NBA player data analysis systems.
Keywords: NBA player data analysis system; Spark framework; MySQL.
目 录
第1章 引言
1.1 研究背景与意义
在当前信息技术迅速发展的时代,大数据分析已经成为了各个领域中不可或缺的一部分。而体育运动作为一项受到广泛关注和热爱的活动,也逐渐开始应用大数据分析来提升球队和球员的表现。
NBA作为全球最顶级的篮球联赛之一,其赛事数据量庞大且多样化,包括球员得分、篮板、助攻等指标,以及球队的战绩、胜率等信息。利用这些数据进行深入分析,可以帮助球队和教练更好地制定战术策略、评估球员表现和做出决策。
然而,由于NBA数据量大且复杂,传统的数据处理和分析方法已经无法满足快速和准确的需求。因此,基于Spark的NBA球员数据分析系统的研究与开发具有重要的背景和意义。
该系统的研究与开发不仅有助于提升NBA球队的竞争力和战术水平,还对于体育数据分析领域的发展具有重要的推动作用。此外,该系统还为篮球爱好者和数据分析师提供了一个全面、准确和实用的工具,帮助他们更好地理解和分析NBA球员数据,从而提升他们的洞察力和决策能力。
因此,基于Spark的NBA球员数据分析系统的研究与开发对于推动体育数据分析的发展,提升球队和球员表现,以及满足篮球爱好者和数据分析师的需求具有重要的背景和意义。
1.2 国内外研究现状
在国内外,NBA球员数据分析已经成为一个热门的研究领域,并且取得了一些重要的研究成果。以下是国内外研究现状的概述:
国外研究现状:
NBA官方数据平台:NBA官方提供了全面的赛事统计数据和分析工具,包括球员和球队的各项指标,以及高级统计数据如效率值、真实命中率等。这些数据对于学术研究和商业分析起到了重要作用。
学术研究论文:许多学者和研究机构致力于分析NBA球员数据。例如,研究者通过使用传统的统计方法和机器学习算法,对球员的技术特点、进攻战术和防守策略进行深入研究,从而提供有关球员能力和球队胜率之间关系的见解。
商业分析公司:一些商业分析公司专注于NBA数据的收集和分析,为球队、教练和球员提供定制化的数据解决方案。他们利用大数据技术和高级分析方法,帮助球队做出更明智的决策,提升球员表现和战术水平。
国内研究现状:
学术研究论文:国内的学者们也开始关注NBA球员数据分析的研究。一些研究者通过使用传统的统计方法和机器学习算法,对NBA球员的技术特点、进攻战术和防守策略进行研究,以揭示球员能力与球队胜率之间的关系。
篮球俱乐部和媒体机构:国内的篮球俱乐部和媒体机构开始重视NBA球员数据的分析。他们利用数据分析工具和平台,深入研究球员表现和球队战术,为球队制定战术方案和球员选拔提供参考。
综上所述,国内外在NBA球员数据分析方面都有不少研究成果。然而,基于Spark的NBA球员数据分析系统的研究与开发在国内外尚属较少,因此仍有很大的研究空间和发展潜力。该系统的研究与开发将填补这一空白,并对于推动NBA球员数据分析的发展具有重要意义。
1.3 发展趋势
基于Spark的NBA球员数据分析系统具有广阔的发展前景。未来的发展趋势包括深度学习和人工智能的应用,以提高对球员表现的预测和建模能力;实时数据处理的需求增加,需要优化系统架构和算法以支持更快速的数据处理;数据可视化和交互性的提升,使用户可以更直观地理解和分析数据;多领域融合的趋势,将不同领域的知识和方法融入到系统中,提供更全面和综合的分析结果;同时,注重数据安全和隐私保护,加强数据加密和访问控制,确保用户数据的安全性和隐私。通过紧跟这些发展趋势,基于Spark的NBA球员数据分析系统将不断提升其分析能力、用户体验和数据安全性,为用户提供更准确、全面和有价值的数据分析服务。
第2章 相关技术介绍
2.1Python语言
Python是一种高级、通用、解释型的编程语言,具有简洁易学、开发效率高、平台无关性和强大的社区支持等特点。其简洁的语法结构和自然语言风格使得代码易于理解和学习,丰富的标准库和第三方库提供了现成的模块和函数,能够快速开发复杂的应用程序。Python跨平台运行,可以在不同操作系统上使用相同的代码,而庞大的开发者社区提供了丰富的文档、教程和开源项目,为开发者提供了帮助和交流的平台。由于这些优势,Python被广泛应用于Web开发、数据分析、人工智能、科学计算、网络编程等各个领域,并在学术界和工业界都有着重要的影响力。
2.2 B/S模式
B/S模式(Browser/Server模式)是一种常见的网络应用架构模式,也被称为Web应用模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互,实现数据的传输和处理。
在B/S模式中,浏览器作为客户端负责向服务器发送请求,并接收服务器返回的响应结果。服务器端负责接收并处理客户端的请求,然后将处理结果返回给客户端。这种模式的优势在于客户端无需安装额外的软件,只需要一个浏览器即可访问和使用应用程序。
B/S模式的应用范围广泛,包括网上购物、在线银行、社交媒体等各种Web应用。它具有以下几个特点:首先,B/S模式可以实现跨平台的应用,因为浏览器作为客户端可以运行在不同的操作系统上;其次,B/S模式具有较好的可扩展性和维护性,因为应用程序的逻辑和数据都集中在服务器端,可以方便地进行升级和维护;最后,B/S模式能够提供更好的安全性,因为服务器端可以对用户的请求进行验证和控制,保护数据的安全性。
总之,B/S模式是一种基于浏览器和服务器的网络应用架构模式,具有跨平台、可扩展和安全性高等优势。它在现代互联网应用中得到广泛应用,并成为许多Web应用的首选架构模式。
2.3 spark框架介绍
Spark是一种快速、通用的大数据处理框架,具有分布式计算和内存计算的能力,支持弹性扩展,并提供多种编程语言支持。它通过将任务划分为多个子任务并在集群中并行执行,可以高效地处理大规模数据集。Spark的内存计算技术显著提升了计算速度,而丰富的数据处理功能包括数据清洗、转换、聚合和机器学习等。开发人员可以选择适合自己的编程语言来编写Spark应用程序,从而实现高效的数据处理和分析,获得更好的数据洞察力和业务价值。总之,Spark框架是一个强大而灵活的工具,为大数据处理提供了可靠的解决方案。
第3章 系统分析
3.1 可行性分析
开发任何一个系统,都要对其可行性进行分析,对其时间和资源上的限制进行考虑,这样可以减少系统开发的风险。同时,分析之后不仅能够合理的运用人力,还能在各方面资源的消耗上得到节省。下面就对技术、经济和社会三个方面来介绍。
3.1.1 技术可行性
技术可行性主要考虑当前项目所用的技术是否能够符合,在设备上是否能够满足,及各种辅助工具是否提供帮助。本系统用的是python开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。采用python编程语言,已无技术上的问题。
3.1.2 经济可行性
在开发NBA球员数据分析系统中涉及到的开发工具(IDEA、python、Spark、Tomcat等)都是免费的,下载安装到自己的电脑上就能够使用,而且在大学四年的学习当中,我都能够熟练掌握这些技术,自己可以开发完成这样一个系统,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
3.1.3 社会可行性
本系统是自行开发的系统,以方便高效管理NBA球员数据分析系统为出发点,是具有实际意义的系统,开发的环境软件和用到的数据库也都是开源代码,不存在侵权等问题,所以在社会方面也是可行的。
3.2 系统功能需求
在系统开发设计前,应该对功能做初步设想,清楚这个管理系统有什么板块,每个板块有什么功能,整体的设计是否满足使用者的需求,接着对所开发的系统功能进行的详细分析总结,从而设计出完整的系统并将其实现。管理员、普通用户的数据分析,使其达到最佳理解程度,使系统功能达到最佳。
普通用户用例图如下所示。
图3-1 普通用户用例图
管理员用例图如下所示。
图3-2 管理员用例图
通过对用例图的分析和调查,根据本系统的实际需要,从用户角度提出需求功能如下:
1、系统用户功能需求:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现篮板分析浏览、技师预约等操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作,同时用户还可以通过“我的账户”这按钮对个人信息以及操作的信息进行管控。
(2)通知公告:用户可以在系统中查看最新的通知公告,包括比赛安排、球队动态或其他重要信息,以便及时了解NBA赛事相关内容。
(3)数据信息:用户可以通过系统浏览和查询各种数据信息,如球员数据、球队数据、比赛数据等,以获取感兴趣的数据内容。
(4)得分分析:系统提供对球员得分数据的分析功能,包括单场或整个赛季的得分情况统计和图表展示,帮助用户了解球员的得分能力和发展趋势。
(5)篮板分析:用户可以查看球员篮板数据的分析结果,包括进攻篮板和防守篮板的统计和图表展示,以评估球员在篮板方面的表现和能力水平。
(6)助攻分析:系统提供对球员助攻数据的分析功能,包括助攻次数、助攻率等指标的统计和图表展示,帮助用户了解球员在组织进攻方面的贡献和效率。
(7)盖帽分析:用户可以查看球员盖帽数据的分析结果,包括盖帽次数、盖帽率等指标的统计和图表展示,以评估球员在防守端的能力和影响力。
(8)抢断分析:系统提供对球员抢断数据的分析功能,包括抢断次数、抢断率等指标的统计和图表展示,以评估球员在防守端的积极性和能力水平。
(9)球队3分分析和球队2分分析:用户可以查看球队在比赛中的3分球和2分球数据的分析结果,包括投篮命中率、出手次数等指标的统计和图表展示,以评估球队在不同投篮方式下的得分效果和能力。
2、管理员功能需求:
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)系统用户管理:管理员应具有管理系统用户的权限,包括添加、删除和修改用户账号信息,以及设置用户权限和角色。
(3)通知公告管理:管理员可以发布通知公告,包括比赛安排、球队动态或其他重要信息。管理员还可以编辑和删除已发布的通知公告。
(4)数据信息管理:管理员负责对数据信息进行维护和更新,包括球员数据、球队数据、比赛数据等。管理员可以添加、编辑和删除相关数据内容,确保数据的准确性和完整性。
(5)得分分析管理:管理员可以对得分分析功能进行管理,包括统计和图表展示球员的得分情况。管理员可以配置分析参数、更新数据,以及监控分析结果的生成和准确性。
(6)篮板分析管理:管理员负责篮板分析功能的管理,包括统计和图表展示球员的篮板数据。管理员可以设置分析范围和指标,确保分析结果的可靠性和实用性。
(7)助攻分析管理:管理员可以管理助攻分析功能,包括统计和图表展示球员的助攻数据。管理员可以调整分析数据、优化计算性能,并监控分析结果的生成和精度。
(8)盖帽分析管理:管理员负责盖帽分析功能的管理,包括统计和图表展示球员的盖帽数据。管理员可以设置分析参数、更新数据,以确保分析结果的准确性和实用性。
(9)抢断分析管理:管理员可以管理抢断分析功能,包括统计和图表展示球员的抢断数据。管理员可以监控分析过程、检查数据质量,并进行必要的调整和优化。
(10)球队3分分析和球队2分分析管理:管理员负责管理球队在比赛中的3分球和2分球数据的分析功能。管理员可以配置分析参数、更新数据,以及监督分析结果的生成和准确性。
通过以上功能分析,管理员可以轻松管理系统用户和发布通知公告,同时负责维护和更新数据信息,以及管理得分、篮板、助攻、盖帽、抢断和球队投篮分析等多个功能模块。管理员应具备权限管理、数据维护和分析配置的能力,以确保系统的正常运行和数据分析的可靠性。
3.3 系统性能需求
评判一个系统好坏的一项重要指标就是性能,下面是对此系统的一些性能进行阐述。
1.系统的安全性和稳定性: spark NBA球员数据分析系统在管理权限上有着严格的控制,即想登录此平台进行操作,则必须要有操作权限,没有权限的用户是不可能登录平台查看任何的信息和数据,从而确保了系统的安全性。
2.数据的完整性和准确性:第一个是各项记录信息的完整性,信息记录的内容可以为空;第二个是各项信息数据之间相互联系的准确性;第三个是数据在不同记录信息的一致性
3.用户操作系统简单方便
在系统开发中按照“简单易用”的原则,能够使用户对系统的使用一目了然,既能保证用户使用,同时又能保证维护人员方便维护。
3.4 业务流程分析
业务流程图不仅能反映出内部业务之间的关系,而且能体现出作业顺序及信息的流动。基于spark的NBA球员数据分析系统必须支持整个组织在不同层次上的各种功能,各个功能模块之间又有各种不同相关的信息进行联系,构成了一个有机的整体,根据NBA球员数据分析系统的特点以及结合所面临的实际情况,设计出了系统的业务流程图。
系统的业务流程如下图所示。
图3-3系统业务流程图
第4章 系统设计
4.1系统架构设计
MVC 是指 Model、View 和 Controller,翻译成中文分别是模型层、视图层和控制层。MVC 模式是一种设计模式,它强制性的把应用程序的输入、输出和处理全部分开,将其分为三个核心部分,这三个部分分别有不同的功能。
图4-1系统架构图
视图层视图是指被用户所看到的并且能够与之进行交互的界面。视图可以向用户展示相关的数据,并接收用户输入的数据,但对用户数据不进行任何实际业务操作处理。
模型层通过控制层来处理视图层传递的数据,同一个模型可以给不同的视图提供数据,也可以被不同的视图重复使用。由于 Model 的主要内容是数据、方法和行为,其也是 MVC 中逻辑最为复杂,代码量最多的部分,其中包含了许多应用中需要用到的业务逻辑,因此模型层的开发也变得尤为重要,后期一般不会对模型层进行大规模改动,也是 MVC 中最稳定的部分。
控制层主要负责视图层和模型层之间的数据传输和处理请求操作。当用户通过视图发送数据和请求时,控制层可以接收请求和数据并决定调用哪些模型、通过模型的哪些操作来处理数据和请求,处理完成后,控制层再将数据返回给相应的视图。
4.2 总体结构设计
根据对系统的功能进行分析可以总结基于spark的NBA球员数据分析系统的具体功能模块包括下面的几个主要的功能模块:该系统主要从两大模块进行设计的,首先就是用户参与操作需要的模块,此外还需要有管理员用到的模块,两者之间不是互相独立的,他们之间有着密切的联系,同数据库表中的数据连接起来进行操作。每个模块访问相同的数据库,但访问的表不同。系统的各个功能模块是根据所收集的资料研究得到的。在以上分析功能的基础上,系统模块分为多个模块。
系统的功能结构图如下图所示。
图4-2系统功能结构图
4.3 数据库设计
4.3.1 概念设计
E-R图一般是由实体、实体的属性与联系三个要素组成的。在规划系统中所使用的数据库实体对象及实体E-R图,则需要通过对系统的需求分析、业务流程设计和系统功能结构来确定的。
总体E-R图如下图所示。
图4-3总体E-R图
4.3.2 逻辑设计
将实体属性模型转换为关系数据库应该遵循以下几个原则:
1.一个实体转换后要对应一个关系。
2.所有的主键必须要定义为非空(not null)。
3.针对二元联系也应该按照一对多、弱对实、一对一和多对多等联系来定义外键。
得到数据库的关系后,设计如下表结构。
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
assist_analysis_id |
int |
10 |
0 |
N |
Y |
助攻分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
player_age |
varchar |
64 |
0 |
Y |
N |
球员年龄 |
|
5 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
6 |
number_of_assists |
varchar |
64 |
0 |
Y |
N |
助攻次数 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
7 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
8 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
9 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
10 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
11 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
12 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
13 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
14 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
15 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
16 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
17 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
18 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
backboard_analysis_id |
int |
10 |
0 |
N |
Y |
篮板分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
player_age |
varchar |
64 |
0 |
Y |
N |
球员年龄 |
|
5 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
6 |
total_number_of_rebounds |
varchar |
64 |
0 |
Y |
N |
篮板总数 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
cap_analysis_id |
int |
10 |
0 |
N |
Y |
盖帽分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
player_age |
varchar |
64 |
0 |
Y |
N |
球员年龄 |
|
5 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
6 |
blocked_shots |
varchar |
64 |
0 |
Y |
N |
盖帽次数 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
data_information_id |
int |
10 |
0 |
N |
Y |
数据信息ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
player_age |
varchar |
64 |
0 |
Y |
N |
球员年龄 |
|
5 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
6 |
games_played |
int |
10 |
0 |
Y |
N |
0 |
出场次数 |
7 |
number_of_first_releases |
int |
10 |
0 |
Y |
N |
0 |
首发次数 |
8 |
time_of_appearance |
varchar |
64 |
0 |
Y |
N |
出场时间 |
|
9 |
hit_counts |
int |
10 |
0 |
Y |
N |
0 |
命中次数 |
10 |
shooting_frequency |
int |
10 |
0 |
Y |
N |
0 |
投篮次数 |
11 |
shooting_percentage |
varchar |
64 |
0 |
Y |
N |
投篮命中率 |
|
12 |
3_point_hit_count |
int |
10 |
0 |
Y |
N |
0 |
3分命中数 |
13 |
3_out_of_3_hands |
int |
10 |
0 |
Y |
N |
0 |
3分出手数 |
14 |
3_point_hit_rate |
varchar |
64 |
0 |
Y |
N |
3分命中率 |
|
15 |
2_point_hit_count |
int |
10 |
0 |
Y |
N |
0 |
2分命中数 |
16 |
2_out_of_2_hands |
int |
10 |
0 |
Y |
N |
0 |
2分出手数 |
17 |
2_point_hit_rate |
varchar |
64 |
0 |
Y |
N |
2分命中率 |
|
18 |
effective_hit_rate |
varchar |
64 |
0 |
Y |
N |
有效命中率 |
|
19 |
free_throws_made |
int |
10 |
0 |
Y |
N |
0 |
罚球命中数 |
20 |
free_throw_shots |
int |
10 |
0 |
Y |
N |
0 |
罚球出手数 |
21 |
initiation_hit_rate |
varchar |
64 |
0 |
Y |
N |
发起命中率 |
|
22 |
front_court_rebounds |
int |
10 |
0 |
Y |
N |
0 |
前场篮板数 |
23 |
backcourt_rebounds |
int |
10 |
0 |
Y |
N |
0 |
后场篮板数 |
24 |
total_number_of_rebounds |
int |
10 |
0 |
Y |
N |
0 |
篮板总数 |
25 |
number_of_assists |
int |
10 |
0 |
Y |
N |
0 |
助攻次数 |
26 |
number_of_steals |
int |
10 |
0 |
Y |
N |
0 |
抢断次数 |
27 |
blocked_shots |
int |
10 |
0 |
Y |
N |
0 |
盖帽次数 |
28 |
number_of_errors |
int |
10 |
0 |
Y |
N |
0 |
失误次数 |
29 |
number_of_fouls_committed |
int |
10 |
0 |
Y |
N |
0 |
犯规次数 |
30 |
total_score |
int |
10 |
0 |
Y |
N |
0 |
总得分 |
31 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
32 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
表notification_announcement (通知公告)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
notification_announcement_id |
int |
10 |
0 |
N |
Y |
通知公告ID |
|
2 |
announcement_number |
varchar |
64 |
0 |
Y |
N |
公告编号 |
|
3 |
announcement_title |
varchar |
64 |
0 |
Y |
N |
公告标题 |
|
4 |
announcement_date |
date |
10 |
0 |
Y |
N |
公告日期 |
|
5 |
announcement_image |
varchar |
255 |
0 |
Y |
N |
公告图片 |
|
6 |
announcement_content |
text |
65535 |
0 |
Y |
N |
公告内容 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
preemptive_analysis_id |
int |
10 |
0 |
N |
Y |
抢断分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
player_age |
varchar |
64 |
0 |
Y |
N |
球员年龄 |
|
5 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
6 |
number_of_steals |
varchar |
64 |
0 |
Y |
N |
抢断次数 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
regular_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
3 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
4 |
contact_phone_number |
varchar |
16 |
0 |
Y |
N |
联系电话 |
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
score_analysis_id |
int |
10 |
0 |
N |
Y |
得分分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
player_age |
varchar |
64 |
0 |
Y |
N |
球员年龄 |
|
5 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
6 |
total_score |
varchar |
64 |
0 |
Y |
N |
总得分 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
sensitive_vocabulary_id |
int |
10 |
0 |
N |
Y |
敏感词汇ID |
|
2 |
sensitive_vocabulary |
varchar |
64 |
0 |
Y |
N |
敏感词汇 |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表team_2_point_analysis (球队2分分析)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
team_2_point_analysis_id |
int |
10 |
0 |
N |
Y |
球队2分分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
5 |
2_point_hit_count |
varchar |
64 |
0 |
Y |
N |
2分命中数 |
|
6 |
competition_year |
varchar |
64 |
0 |
Y |
N |
比赛年份 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表team_3_point_analysis (球队3分分析)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
team_3_point_analysis_id |
int |
10 |
0 |
N |
Y |
球队3分分析ID |
|
2 |
player_name |
varchar |
64 |
0 |
Y |
N |
球员姓名 |
|
3 |
player_position |
varchar |
64 |
0 |
Y |
N |
球员位置 |
|
4 |
team |
varchar |
64 |
0 |
Y |
N |
所在球队 |
|
5 |
3_point_hit_count |
varchar |
64 |
0 |
Y |
N |
3分命中数 |
|
6 |
competition_year |
varchar |
64 |
0 |
Y |
N |
比赛年份 |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表upload (文件上传)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
user_id |
mediumint |
8 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
第5章 系统实现
5.1数据库连接模块的实现
从web系统查询数据的根本的查询步骤:
Step1: 进行检查并且过滤来自用户的系统数据;
Step2: 成立起一个合适的数据库进行连接;
Step3: 进行查询系统数据库;
Step4: 获得查询的结构;
Step5: 把查询的结果展示给用户。
Step6: 数据库连接断开,释放资源。
数据库连接原理如下图所示。
图5-1数据库连接原理
5.2 登录模块的实现
为确保系统安全性,系统操作员只有在登录界面输入正确的用户名、密码、权限以及验证码,单击“登录”按钮后才能够进入本系统的主界面。
用户登录流程图如下所示。
图5-2用户登录流程图
登录界面如下图所示。
图5-3登录界面
5.3 用户功能模块的实现
5.3.1注册模块的实现
用户输入用户名、密码、电话、姓名等必填信息后,点击注册按钮完成用户的注册。
用户注册流程图如下所示。
图5-4用户注册流程图
用户注册界面如下图所示。
图5-5用户注册界面
5.3.2 数据信息模块的实现
用户可以通过系统浏览和查询各种数据信息,如球员数据、球队数据、比赛数据等,以获取感兴趣的数据内容。如下图所示。
图5-6数据信息列表界面
5.3.3 得分分析模块的实现
系统提供对球员得分数据的分析功能,包括单场或整个赛季的得分情况统计和图表展示,帮助用户了解球员的得分能力和发展趋势。得分分析详情如下图所示。

图5-7得分分析详情界面
5.3.4 篮板分析模块的实现
用户可以查看球员篮板数据的分析结果,包括进攻篮板和防守篮板的统计和图表展示,以评估球员在篮板方面的表现和能力水平,篮板分析详情如下图所示。

图5-8篮板分析详情界面
5.3.5 助攻分析模块的实现
系统提供对球员助攻数据的分析功能,包括助攻次数、助攻率等指标的统计和图表展示,帮助用户了解球员在组织进攻方面的贡献和效率,助攻分析信息详情如下图所示。

图5-9助攻分析信息详情界面
5.3.6 盖帽分析模块的实现
用户点击用户可以查看球员盖帽数据的分析结果,包括盖帽次数、盖帽率等指标的统计和图表展示,以评估球员在防守端的能力和影响力,盖帽分析信息详情如下图所示。

图5-10盖帽分析信息详情界面
5.3.7 球队3分分析和球队2分分析模块的实现
球队3分分析和球队2分分析:用户应能够查看球队在比赛中的3分球和2分球数据的分析结果,包括投篮命中率、出手次数等指标的统计和图表展示,以评估球队在不同投篮方式下的得分效果和能力。详情如下图所示。
图5-11球队3分分析详情界面
5.4 管理员功能模块的实现
5.4.1 用户管理模块的实现
系统用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。
用户管理流程图如下所示。
图5-12用户管理流程图
用户管理界面如下图所示。
图5-13用户管理界面
5.4.2 系统首页模块的实现
系统首页,管理员登录后台系统后,可以管理后台系统用户(管理员、普通用户)通知公告、数据信息、得分分析、篮板分析、助攻分析、盖帽分析、抢断分析、球队3分分析、球队2分分析等功能模块。
系统首页界面如下图所示。
图5-14系统首页界面
5.4.3 通知公告模块的实现
管理员可以发布通知公告,包括比赛安排、球队动态或其他重要信息。管理员还可以编辑和删除已发布的通知公告。界面如下图5-15所示。
图5-15通知公告界面
5.4.4 数据信息管理模块的实现
管理员负责对数据信息进行维护和更新,包括球员数据、球队数据、比赛数据等。管理员可以添加、编辑和删除相关数据内容,确保数据的准确性和完整性。界面如下图5-16所示。
图5-16数据信息管理界面图
5.4.5 抢断分析模块的实现
管理员可以管理抢断分析功能,包括统计和图表展示球员的抢断数据。管理员可以监控分析过程、检查数据质量,并进行必要的调整和优化。界面如下图5-17所示。
图5-17抢断分析管理界面图
5.4.6 球队2分、3分分析模块的实现
管理员负责管理球队在比赛中的3分球和2分球数据的分析功能。管理员可以配置分析参数、更新数据,以及监督分析结果的生成和准确性。界面如下图5-18所示。
图5-18球队2分、3分分析界面图
第6章 系统测试
6.1测试环境
操作系统:Windows 11、Windows 10、Windows 8、Windows 7
开发语言:python
开发工具:pycharm
数据库:MySQL
数据库管理工具:Navicat
python版本:python3.6及以上
6.2 测试目标
系统测试是用于检查软件的质量、性能、可靠性等是否符合用户需求。一套严谨的、规范的、完善的测试过程将大大提高软件的质量、可信度、可靠性,降低软件的出错率,降低用户风险系数。通过在计算机上对系统进行测试试验并从中发现此系统中存在的问题和错误然后加以修改,使之更加符合用户需求。
1.测试的目的是通过测试来发现程序在执行过程中的错误的过程。
2.好的测试方案是可以检验出还未被发现的错误的方案。
3.好的测试是发现了到目前为止还未被发现的错误的测试。
4.该系统能够完成系统用户(管理员、普通用户)通知公告、数据信息、得分分析、篮板分析、助攻分析、盖帽分析、抢断分析、球队3分分析、球队2分分析等功能,做到所开发的系统操作简单,尽量使系统操作不受用户对电脑知识水平的限制。
6.3 功能测试
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-1 系统登录功能测试用例

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6-2 注册功能测试用例

下表是篮板分析管理功能的测试用例,检测了NBA球员数据分析通知公告中对篮板分析的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-3 篮板分析管理的测试用例
6.4 测试结果
经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。
第7章 总结与展望
通过基于spark的NBA球员数据分析系统的开发,我巩固了之前学过的知识,并成功将平时所学到的知识融入到设计中。在设计过程中,我做了充分的准备工作。首先,在数据库系统的设计过程中,我深入讨论了数据库的工作原理和特点。同时,对于小型站点来说,我选择了最适合的服务器。其次,我利用所学的知识点对系统进行了分析,并在此基础上进行了设计。
目前,该系统已经上线并处于试运行阶段。用户反馈良好,基本满足了用户的需求。在试运行过程中,没有出现阻断性问题,一些不足和小问题也得到了及时修正。为了保证数据的安全性,系统上线后进行了定期备份操作。系统备份频率为每两个月备份一次,数据库备份频率为每周备份一次。系统部署在租赁的云平台服务器上。
系统上线后,得到了用户的高度认可。然而,在功能和性能方面仍需要进一步研究和处理,以提升系统的性能和用户体验。
在系统的升级过程中,需要解决用户提出的一系列问题。例如,如何避免浏览器兼容性问题以确保打印过程的顺利进行,如何在大量用户访问时保持较高的响应速度。在系统今后的升级过程中,我将重点解决这些安全性问题,并不断改进系统的功能和性能。
参考文献
[1]Python Online Compiler: The Ultimate Tool for Beginners and Experts[J].M2 Presswire,2024,
[2]Shaodong S ,Jing B ,Jianglong G , et al.Extraordinary mechanical properties and room-temperature magnetocaloric effects in spark plasma sintered all-d-metal Ni-Co-Mn-Ti alloy[J].Journal of Alloys and Compounds,2024,976173406-.
[3]Zhen T ,Pan W ,Sifan Z , et al.Reactive spark plasma sintering of high-entropy (La1/7Nd1/7Sm1/7Eu1/7Gd1/7Dy1/7Ho1/7)2Zr2O7 pyrochlore ceramic[J].Ceramics International,2024,50(4):6892-6897.
[4]王娜,李强.大数据分析管理系统在新能源汽车事故分析中的应用[J].时代汽车,2024,(02):192-194.
[5]杨波.农业气象数据爬虫系统研究[J].农业与技术,2023,43(24):176-180.
[6]吕利军,李伟,郑鑫等.基于大数据分析的分布式电源智能管理系统的研究[J].电气应用,2023,42(12):39-44.
[7]刘方磊.基于SSM框架的旅游大数据分析系统设计与实现[J].中国新技术新产品,2023,(21):22-25.
[8]江琴.Python语言在大数据分析中的应用设计[J].信息记录材料,2023,24(11):88-90.
[9]宗艳.Python语言与应用[J].小学教学研究,2023,(30):20-22.
[10]孟瑞军.基于Spark的实时广告推荐系统研究[J].信息与电脑(理论版),2023,35(09):60-62.
[11]张坤.基于Spark机器学习的电影推荐系统的设计与实现[D].南京邮电大学,2022.
[12]李明睿.NBA数据可视化与集成学习模型预测方法研究[D].桂林电子科技大学,2022.
[13]金映言,贾俊铖,洪敏杰等.面向NBA球员的数据分析和可视化[J].计算机应用与软件,2021,38(08):84-91+174.
[14]朱炳旭,叶传奇,王君洋等.基于Spark大数据处理的电影推荐系统设计与实现[J].无线互联科技,2021,18(11):54-55.
[15]卢蔚.校园足球数据采集智能化系统的研究与开发[D].南京体育学院,2020.
致谢
在此论文完成之际,我要衷心感谢我的指导老师。在指导老师的网页设计课上,我学到了很多知识,这为我的实习过程打下了坚实的基础。指导老师对我的设计提出了许多宝贵的建议,并给予了细心的指导。他耐心地引导我解决一些小问题,不断完善我的设计。他还与我交流论文进展情况,并时常鼓励我。另外,我也要感谢教导我完善项目前端的同学。在这个项目中,我是边学习边实践,开始时有很多不明白的地方,但前端开发的同学非常耐心地指导我完成项目。在后端开发过程中,我经常向他们请教使用的后台开发技术,这有助于我更好地完成论文。在此,我要衷心感谢那些帮助过我的同学和一直以来给予我指导的老师们,祝愿你们事业有成。
点赞+收藏+关注 →私信领取本源代码、数据库

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)