目 录
在当今的信息化社会中,数据已经成为了决策的重要依据。二手车市场作为一个充满活力和复杂性的经济领域,其背后蕴含着大量的数据资源。这些数据不仅记录了市场的交易情况、车辆信息、用户行为等,还隐藏着市场的趋势、消费者的偏好以及潜在的商业价值。因此,如何有效地获取、清洗和分析这些数据,进而通过可视化的方式将这些信息呈现出来,成为了二手车市场分析和决策的关键。
Django作为一款功能强大、易于扩展的Web框架,为构建数据驱动的Web应用提供了强大的支持。结合大数据技术,我们可以实现对海量数据的快速处理和深入分析。而爬虫技术则是一种重要的数据获取手段,通过自动化地抓取网页数据,我们可以获取到二手车市场的各种信息。但爬虫抓取到的数据往往存在格式不一致、重复、错误等问题,这就需要通过数据清洗来解决。数据清洗是对原始数据进行处理、纠正、过滤、去重等操作,以确保数据的质量和准确性。
本文旨在探讨基于Django和大数据技术的二手车市场数据分析与可视化系统的设计与实现,特别关注爬虫技术和数据清洗在该系统中的应用。通过构建一个集成数据爬取、清洗、分析、存储和可视化的系统,我们希望能够为二手车市场的参与者提供准确、及时的市场动态、车辆信息、用户行为分析等服务。这不仅有助于提升市场的透明度和效率,还能为消费者提供更加可靠的购车建议。
在系统的设计和实现过程中,我们将充分利用Django的Web开发能力和大数据技术的数据处理能力,结合爬虫技术和数据清洗方法,确保系统能够高效地获取、处理和分析数据。同时,我们还将注重系统的可扩展性、稳定性和安全性,以满足二手车市场日益增长的数据分析需求。
总之,通过本文的研究和阐述,我们期望能够为基于Django和大数据技术的二手车市场数据分析与可视化系统的设计与实现提供有益的参考和借鉴,推动二手车市场数据分析与可视化技术的发展和应用。
关键词:Django;二手车市场;数据分析与可视化系统;Web
Abstract
In today's information society, data has become an important basis for decision-making. The second-hand car market, as a dynamic and complex economic field, contains a large amount of data resources behind it. These data not only record market transactions, vehicle information, user behavior, etc., but also conceal market trends, consumer preferences, and potential commercial value. Therefore, how to effectively obtain, clean, and analyze this data, and then present this information through visualization, has become the key to analyzing and making decisions in the second-hand car market.
Django, as a powerful and easily scalable web framework, provides powerful support for building data-driven web applications. By combining big data technology, we can achieve rapid processing and in-depth analysis of massive amounts of data. Crawling technology is an important means of data acquisition. By automatically crawling web data, we can obtain various information about the second-hand car market. However, the data captured by crawlers often has problems such as inconsistent format, duplication, and errors, which require data cleaning to solve. Data cleaning is the process of processing, correcting, filtering, and deduplicating raw data to ensure its quality and accuracy.
This article aims to explore the design and implementation of a second-hand car market data analysis and visualization system based on Django and big data technology, with special attention to the application of web crawling technology and data cleaning in the system. By building an integrated system for data crawling, cleaning, analysis, storage, and visualization, we hope to provide accurate and timely market dynamics, vehicle information, user behavior analysis, and other services for participants in the second-hand car market. This not only helps to improve market transparency and efficiency, but also provides consumers with more reliable car buying advice.
In the process of system design and implementation, we will fully utilize Django's web development capabilities and big data technology's data processing capabilities, combined with web scraping technology and data cleaning methods, to ensure that the system can efficiently obtain, process, and analyze data. At the same time, we will also focus on the scalability, stability, and security of the system to meet the growing data analysis needs of the second-hand car market.
In summary, through the research and exposition in this article, we hope to provide useful references and insights for the design and implementation of a data analysis and visualization system for the second-hand car market based on Django and big data technology, and promote the development and application of data analysis and visualization technology in the second-hand car market.
Keywords:Django; Second hand car market; Data analysis and visualization system; Web
1 绪论
1.1 选题背景和意义
随着互联网的普及和大数据技术的飞速发展,数据已经成为了现代社会中不可或缺的资源。二手车市场作为一个重要的经济领域,其背后蕴含着丰富的数据资源,包括车辆信息、交易记录、用户行为等。这些数据对于市场参与者来说具有极高的价值,可以帮助他们了解市场动态、优化决策、提升竞争力。然而,如何有效地获取、清洗和分析这些数据,进而通过可视化的方式将这些信息呈现出来,一直是二手车市场面临的重要挑战。
爬虫技术作为一种自动化获取网页数据的方法,为二手车市场数据分析提供了有力的支持。通过爬虫,我们可以从各大二手车交易平台、社交媒体、论坛等渠道抓取相关数据,实现数据的快速收集和整合。然而,爬虫抓取到的数据往往存在格式不一致、重复、错误等问题,这就需要通过数据清洗来解决。数据清洗是对原始数据进行处理、纠正、过滤、去重等操作,以确保数据的质量和准确性。只有经过清洗的数据才能为后续的数据分析和可视化提供可靠的基础。
基于大数据技术的二手车市场数据分析与可视化系统设计与实现,具有重要的研究背景和意义。首先,该系统可以帮助市场参与者更加全面地了解市场动态和趋势,为他们的决策提供科学依据。其次,通过数据可视化,用户可以更加直观地了解数据背后的信息和规律,提升数据的可读性和易用性。最后,该系统还可以为二手车市场的监管和规范提供有力支持,促进市场的健康发展。
综上所述,基于爬虫技术、数据清洗和大数据技术的二手车市场数据分析与可视化系统设计与实现,具有重要的研究背景和意义。该系统不仅可以提升二手车市场的透明度和效率,还可以为市场参与者提供更加可靠的决策支持和数据服务。
在中国,随着大数据技术的日益成熟和二手车市场的持续繁荣,基于大数据的二手车市场数据分析与可视化系统正逐渐受到关注。国内的研究主要集中在如何利用大数据技术分析二手车市场的交易数据、用户行为、车辆价值评估等方面。一些研究团队已经开发出初步的数据分析系统,通过数据挖掘和机器学习算法,实现对市场趋势的预测和车辆价值的评估。在数据可视化方面,国内的研究者也在不断探索和创新,通过图表、地图、热力图等多种形式,将复杂的数据转化为直观、易懂的视觉信息。
国外研究现状:
在国外,尤其是欧美发达国家,二手车市场已经相当成熟,相关的数据分析与可视化研究也更为深入。一些知名的二手车交易平台,如CarMax、AutoTrader等,已经建立起完善的数据分析系统,利用大数据技术对市场进行深入研究。这些系统不仅关注基本的交易数据,还涉及用户行为分析、车辆历史记录、市场预测等多个方面。在数据可视化方面,国外的研究者和企业也更加注重用户体验和交互性,通过先进的可视化技术和交互设计,为用户提供更加直观、便捷的数据展示方式。
综上所述,无论是国内还是国外,基于大数据技术的二手车市场数据分析与可视化系统都已经成为研究的热点和趋势。随着技术的不断进步和市场的不断发展,这一领域的研究和应用将越来越广泛和深入。
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
技术可行性分析主要通过对现有技术的判断,来预测系统的实际开发是否存在可能性,是整个分析过程中最为关键的一个环节,决定系统的实际成功率。因此,系统在技术可行性上做出详细的分析。首先,系统采用的是Django开发技术,这项技术比较全面,实用广泛,没有实现不了的功能需求;其次,数据库采用的是MySQL作为存储数据,这种数据库稳定性极高,也是大众实用的数据库;最后,开发工具,采用的是Pycharm,工具中具有框架函数等,可以直接引用;通过三年多的学习与实践,对本系统的使用技术掌握已经熟练,并对相应的技术种类有一定的了解,主要运用的语言是Python。
2.1.2 操作可行性分析
此次项目设计参考了几个该模式下网站的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。
2.1.3经济可行性分析
经济可行性分析主要是考虑在系统开发的过程中所涉及到的费用问题,从全方位角度分析,费用主要涉及人力资本费用,相关设备费用,以及维护费用等。本次系统开发的整体规模都比较小,涉及到的费用较低,对于个人来讲,都可以承受,为此,经济可行性的分析也是行得通的。
二手车市场数据分析与可视化系统主要划分为了普通用户和管理员这两大部分,具体功能描述如下:
- 普通用户功能介绍:
注册登录:用户可以通过手机号码或邮箱注册账号,并使用账号密码进行登录,也可以选择第三方登录方式进行快速登录。
首页:用户可以在首页浏览最新的二手车信息,热门车型推荐,以及相关的汽车资讯和网站公告。
交流论坛:用户可以在论坛中参与讨论、提问和回答,分享购车经验、维修经验等,促进用户之间的交流互动。
汽车资讯:用户可以浏览最新的汽车行业资讯、车型介绍、购车指南等内容,帮助用户获取购车相关信息。
汽车信息:用户可以在系统中查找并浏览二手车的详细信息,包括车型、车况、价格等,也可以进行搜索和筛选。
我的账户:用户可以在我的账户中管理个人信息,包括修改密码、绑定手机号码、设置通知偏好等。
个人首页:查看个人的基本信息和账户概况。
申请评估:提交二手车信息进行评估。
评估结果:查看二手车的评估结果和建议。
卖车信息:发布自己要出售的二手车信息。
试驾信息:预约二手车试驾。
购车订单:查看和管理已经下单的购车订单。
论坛列表:查看自己发布的帖子和回复。
收藏:收藏感兴趣的二手车信息或论坛帖子
管理员功能介绍:
登录:管理员通过账号密码登录系统进入后台管理界面。
后台首页:管理员登录后进入后台首页,可以查看系统的整体运营情况概览,包括用户数量、交易订单情况、申请评估数量等。
系统用户管理:管理员可以管理系统中的用户,包括查看用户列表、禁用用户、重置用户密码等操作,确保平台用户的规范使用。
汽车信息管理:管理员可以管理系统中的二手车信息,包括审核发布的二手车信息、删除不当信息、编辑车辆信息等。
申请评估管理:管理员可以管理用户提交的二手车评估申请,对评估申请进行审核和处理。
评估结果管理:管理员可以查看和审批二手车的评估结果,并提供意见和建议。
卖车信息管理:管理员可以管理用户发布的二手车出售信息,对信息进行审核和处理。
试驾信息管理:管理员可以管理用户的试驾预约信息,安排试驾服务或进行审核。
购车订单管理:管理员可以管理用户的购车订单信息,包括审核订单、处理退款退货申请等操作。
品牌分析管理:管理员可以对二手车市场数据进行品牌分析,包括各品牌车辆交易量、价格分布等数据分析。
车型分析管理:管理员可以对二手车市场数据进行车型分析,包括各车型的交易量、热门车型等数据分析。
轮播图管理:管理员可以管理网站首页的轮播图内容,包括添加、编辑、删除轮播图片,以及设定轮播图的跳转链接。
网站公告管理:管理员可以发布重要的网站公告,包括系统更新、活动通知等,确保用户及时获取相关信息。
资源管理:管理员可以管理汽车资讯和新闻列表,包括添加、编辑、删除资讯内容,以及设置资讯分类,帮助用户获取购车相关信息。
交流管理:管理员可以监督和管理交流论坛的内容,包括删除不当内容、处理用户投诉等,维护平台的良好氛围。
二手车市场数据分析与可视化系统的非功能性需求比如二手车市场数据分析与可视化系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1二手车市场数据分析与可视化系统非功能需求表
安全性 | 主要指二手车市场数据分析与可视化系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指二手车市场数据分析与可视化系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响二手车市场数据分析与可视化系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着二手车市场数据分析与可视化系统的页面展示内容进行操作,就可以了。 |
可维护性 | 二手车市场数据分析与可视化系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
二手车市场数据分析与可视化系统的完整UML用例图分别如下图所示。
普通用户角色用例图如下图所示。
图2-1 普通用户角色用例图
管理员角色用例图如下图所示。
图2-2管理员角色用例图
2.5系统流程分析
2.5.1用户登录流程
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图2-3所示。
图2-3登录操作流程图
对于二手车市场数据分析与可视化系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图2-4所示。
图2-4信息添加流程图
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图2-5所示。
图2-5信息删除流程图
本章主要通过对二手车市场数据分析与可视化系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个二手车市场数据分析与可视化系统要实现的功能。同时也为二手车市场数据分析与可视化系统的代码实现和测试提供了标准。
本章主要讨论的内容包括二手车市场数据分析与可视化系统的系统架构设计、功能模块设计和数据库系统设计。
3.1 系统架构设计
本二手车市场数据分析与可视化系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1二手车市场数据分析与可视化系统系统架构设计图
表现层(UI):又称UI层,主要完成本二手车市场数据分析与可视化系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本二手车市场数据分析与可视化系统时的舒适度。UI的界面设计也要适应不同版本的二手车市场数据分析与可视化系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本二手车市场数据分析与可视化系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本二手车市场数据分析与可视化系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本二手车市场数据分析与可视化系统的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本二手车市场数据分析与可视化系统中的用例。那么接下来就要开始对本二手车市场数据分析与可视化系统的架构、主要功能开始进行设计。二手车市场数据分析与可视化系统根据前面章节的需求分析得出,其总体设计模块图如下图所示。
图3-2 二手车市场数据分析与可视化系统功能模块图
3.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个二手车市场数据分析与可视化系统中主要的数据库表总E-R实体关系图。
图3-2 二手车市场数据分析与可视化系统总E-R关系图
3.3.2 数据库逻辑结构设计
通过上一小节中二手车市场数据分析与可视化系统中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
表application_evaluation (申请评估)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | application_evaluation_id | int | 10 | 0 | N | Y | 申请评估ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | contact_information | varchar | 16 | 0 | Y | N | 联系方式 | |
4 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
5 | car_models | varchar | 64 | 0 | Y | N | 汽车车型 | |
6 | car_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
7 | car_color | varchar | 64 | 0 | Y | N | 汽车颜色 | |
8 | vehicle_displacement | varchar | 64 | 0 | Y | N | 汽车排量 | |
9 | car_year | varchar | 64 | 0 | Y | N | 汽车年份 | |
10 | application_time | datetime | 19 | 0 | Y | N | 申请时间 | |
11 | situation_notes | text | 65535 | 0 | Y | N | 情况备注 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | 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 | 更新时间: |
表automotive_information (汽车信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | automotive_information_id | int | 10 | 0 | N | Y | 汽车信息ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | car_models | text | 65535 | 0 | Y | N | 汽车车型 | |
4 | car_model | text | 65535 | 0 | Y | N | 汽车型号 | |
5 | car_color | varchar | 64 | 0 | Y | N | 汽车颜色 | |
6 | vehicle_displacement | varchar | 64 | 0 | Y | N | 汽车排量 | |
7 | car_year | varchar | 64 | 0 | Y | N | 汽车年份 | |
8 | car_pictures | varchar | 255 | 0 | Y | N | 汽车图片 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | brand_analysis_id | int | 10 | 0 | N | Y | 品牌分析ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | new_car_price | int | 10 | 0 | Y | N | 0 | 新车价格 |
4 | second_hand_prices | int | 10 | 0 | Y | N | 0 | 二手价格 |
5 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | car_purchase_order_id | int | 10 | 0 | N | Y | 购车订单ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | car_models | varchar | 64 | 0 | Y | N | 汽车车型 | |
4 | car_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
5 | car_color | varchar | 64 | 0 | Y | N | 汽车颜色 | |
6 | vehicle_displacement | varchar | 64 | 0 | Y | N | 汽车排量 | |
7 | car_year | varchar | 64 | 0 | Y | N | 汽车年份 | |
8 | guiding_price | int | 10 | 0 | Y | N | 0 | 指导价格 |
9 | car_purchase_account | int | 10 | 0 | Y | N | 0 | 购车账号 |
10 | car_purchase_contract | varchar | 255 | 0 | Y | N | 购车合同 | |
11 | signing_time | datetime | 19 | 0 | Y | N | 签订时间 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
15 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | evaluation_results_id | int | 10 | 0 | N | Y | 评估结果ID | |
2 | user_account | int | 10 | 0 | Y | N | 0 | 用户账号 |
3 | contact_information | varchar | 64 | 0 | Y | N | 联系方式 | |
4 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
5 | car_models | varchar | 64 | 0 | Y | N | 汽车车型 | |
6 | car_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
7 | car_color | varchar | 64 | 0 | Y | N | 汽车颜色 | |
8 | vehicle_displacement | varchar | 64 | 0 | Y | N | 汽车排量 | |
9 | car_year | varchar | 64 | 0 | Y | N | 汽车年份 | |
10 | evaluation_results | varchar | 255 | 0 | Y | N | 评估结果 | |
11 | evaluation_time | datetime | 19 | 0 | Y | N | 评估时间 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | 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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_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: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表test_drive_information (试驾信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | test_drive_information_id | int | 10 | 0 | N | Y | 试驾信息ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | car_models | varchar | 64 | 0 | Y | N | 汽车车型 | |
4 | car_model | varchar | 64 | 0 | Y | N | 汽车型号 | |
5 | car_color | varchar | 64 | 0 | Y | N | 汽车颜色 | |
6 | vehicle_displacement | varchar | 64 | 0 | Y | N | 汽车排量 | |
7 | car_year | varchar | 64 | 0 | Y | N | 汽车年份 | |
8 | test_drive_user | int | 10 | 0 | Y | N | 0 | 试驾用户 |
9 | contact_information | varchar | 16 | 0 | Y | N | 联系方式 | |
10 | application_time | datetime | 19 | 0 | Y | N | 申请时间 | |
11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
12 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | 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 | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vehicle_analysis_id | int | 10 | 0 | N | Y | 车型分析ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车车型 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | car_mileage | varchar | 64 | 0 | Y | N | 汽车里程 | |
5 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vehicle_evaluation_id | int | 10 | 0 | N | Y | 卖车信息ID | |
2 | automobile_brand | varchar | 64 | 0 | Y | N | 汽车品牌 | |
3 | car_models | varchar | 64 | 0 | Y | N | 汽车车型 | |
4 | car_model | text | 65535 | 0 | Y | N | 汽车型号 | |
5 | car_color | varchar | 64 | 0 | Y | N | 汽车颜色 | |
6 | vehicle_displacement | varchar | 64 | 0 | Y | N | 汽车排量 | |
7 | car_year | varchar | 64 | 0 | Y | N | 汽车年份 | |
8 | guiding_price | int | 10 | 0 | Y | N | 0 | 指导价格 |
9 | car_sales_users | int | 10 | 0 | Y | N | 0 | 卖车用户 |
10 | contact_information | varchar | 16 | 0 | Y | N | 联系方式 | |
11 | submission_time | datetime | 19 | 0 | Y | N | 提交时间 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
整个二手车市场数据分析与可视化系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 系统详细设计与实现
二手车市场数据分析与可视化系统的详细设计与实现主要是根据前面的二手车市场数据分析与可视化系统的需求分析和二手车市场数据分析与可视化系统的总体设计来设计页面并实现业务逻辑。主要从二手车市场数据分析与可视化系统界面实现、业务逻辑实现这两部分进行介绍。
4.1普通用户功能模块
4.1.1 用户注册界面
二手车市场数据分析与可视化系统的用户可以进行注册登录,填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用户注册界面展示如下图所示。
图4-1注册界面图
注册代码:
def Register(self, ctx):
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
if "username" not in body and body["username"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名不能为空",
}
}, ensure_ascii=False))
if "user_group" not in body and body["user_group"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}, ensure_ascii=False))
if "password" not in body and body["password"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "密码不能为空",
}
}, ensure_ascii=False))
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 ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名已存在",
}
}, ensure_ascii=False))
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
4.1.2 用户登录界面
二手车市场数据分析与可视化系统中的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到二手车市场数据分析与可视化系统的首页中;否则将会提示相应错误信息,用户登录界面如下图所示。
图4-2用户登录界面图
登录代码:
def Login(self, ctx):
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:
timeout = timezone.now()
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
ctx.request.session[token] = obj["user_id"]
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 ctx.response(json.dumps(ret, ensure_ascii=False))
在右上角前点击“我的账户”中的个人资料,可以对头像、昵称、邮箱等信息进行管控。个人信息界面如下图所示。
图4-3个人资料界面图
当用户点击“汽车资讯”这一菜单按钮,会显示管理员在后台发布的所有的汽车资讯信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,汽车资讯界面如下图所示。
图4-4汽车资讯界面图
4.1.5汽车信息界面
当用户点击“汽车信息”这一菜单按钮,会显示管理员在后台发布的所有的汽车信息,支持通过关键词进行搜索,选择需要的汽车信息点击可以进入到汽车信息详细的介绍界面,同时可以提交申请试驾,汽车信息界面如下图所示。
图4-5汽车信息界面图
图4-6申请试驾界面图
汽车信息添加代码:
def Add(self, ctx):
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": "已存在"}}
当用户点击“申请评估”这一菜单按钮,用户可以提交二手车信息进行评估。申请评估界面如下图所示。
图4-7申请评估界面图
4.2管理员功能模块
4.2.1 管理员功能界面
管理员可以查看后台首页、系统用户、汽车信息管理、申请评估管理、评估结果管理、卖车信息管理、试驾信息管理、购车订单管理、品牌分析管理、车型分析管理、系统管理、网站公告管理、资源管理、交流管理等,并且可以根据需要进行相应的操作,在功能界面可以查看品牌分析统计表、车型分析统计表。管理员功能界面如下图所示。
图4-8管理员功能界面图
管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。
图4-9系统用户界面图
当点击“卖车信息管理”这一菜单的时候,会出现卖车信息列表这个子菜单,管理员可以管理用户发布的二手车出售信息,对信息进行审核和处理。卖车信息界面如下图所示。
图4-10卖车信息管理界面图
当点击“试驾信息管理”这一菜单的时候,会出现试驾信息列表这个子菜单,管理员可以管理用户的试驾预约信息,安排试驾服务或进行审核。试驾信息界面如下图所示。
图4-11试驾信息管理界面图
当点击“购车订单管理”这一菜单的时候,会出现购车订单列表这个子菜单,管理员可以管理用户的购车订单信息,包括审核订单、处理退款退货申请等操作。购车订单界面如下图所示。
图4-12购车订单管理界面图
4.2.6系统管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。
图4-13 系统管理界面图
管理员点击“网站公告管理”这个菜单,可以查看到系统中所有添加的网站公告,支持通过标题对系网站公告进行查询,添加、删除等操作。网站公告管理界面如下图所示。
图4-14 网站公告管理界面图
5系统测试
5.1 系统测试用例
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些错误,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
汽车信息查看功能测试:
表5-2 汽车信息查看功能测试表
用例名称 | 汽车信息查看 |
目的 | 测试汽车信息查看功能 |
前提 | 用户登录 |
测试流程 | 点击汽车信息列表 |
预期结果 | 可以查看到所有汽车信息信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加卖车信息界面测试:
表5-3 添加卖车信息界面测试表
用例名称 | 添加卖车信息测试用例 |
目的 | 测试卖车信息添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)管理员点击卖车信息,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的卖车信息 |
实际结果 | 实际结果与预期结果一致 |
试驾信息搜索功能测试:
表5-4试驾信息搜索功能测试表
用例名称 | 试驾信息搜索测试 |
目的 | 测试试驾信息搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的试驾信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
购车订单管理展示功能测试:
表5-6购车订单管理展示功能测试表
用例名称 | 购车订单管理展示测试用例 |
目的 | 测试购车订单管理展示功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)搜索查看购车订单管理信息,点击展示。 2)填写购车订单管理信息,点击进行提交。 |
预期结果 | 购车成功 |
实际结果 | 实际结果与预期结果一致 |
通过编写二手车市场数据分析与可视化系统的测试用例,已经检测完毕用户登录模块、汽车信息查看模块、添加卖车信息界面模块、试驾信息搜索功能模块、密码修改模块、购车订单管理展示功能测试,通过这6大模块为二手车市场数据分析与可视化系统的后期推广运营提供了强力的技术支撑。
本研究针对二手车市场数据分析与可视化系统地需求建模,数据建模及过程建模分析设计并实现二手车市场数据分析与可视化系统的过程。给出系统应用架构并分析优劣势,通过功能分解图,系统组件图描述功能需求。设计建立了数据库,给出系统关键数据结构的定义。通过类关系图描述组件间的协作关系,给出各个类的定义方法。通过描述每一个类的字段,属性及方法实现二手车市场数据分析与可视化系统的前后端代码。最终给出系统集成整合方法,完成二手车市场数据分析与可视化系统地设计与实现。
在此项目的开发中,先要按照产品经理做出的产品模型铺出大体的页面,并在其中找好页面的逻辑关系,并且中途总结一些页面上的问题重新反馈给产品经理,当静态页面的搭建的大体已经完善时,就需要和负责后台开发的技术开发者联系,来接好前后台的数据接口,可以让后台的信息在前台显示出来,在这个项目实现中,不光明白了前端开发和产品经理的联系,也明白了后台在整个系统中起到了什么作用,因为前后台的连接,用户可以对系统进行操作,可以在输入自己的相关信息后,通过后台加工,完成对数据库的查找、修改、添加,而理解了这些关系与实现的方法后。再去完善整个系统的功能就更加清晰与简单了。此次的项目它涉及了前台与后台系统的搭建,在学校所学的知识基础上,此次的项目,让我对于一个系统的前端开发,以及后台的作用都有了一个更深切的认知。
[1]陈丽.基于Python编程语言的数字化教育平台设计[J].电子技术,2024,53(01):202-203.
[2]李春亭,王宜怀,施连敏等.编译型嵌入式Python的设计与实现[J].计算机工程与设计,2024,45(01):79-87.DOI:10.16208/j.issn1000-7024.2024.01.011.
[3]任刘娜,付文慧,苏艳丽等.基于Python的光学现象可视化分析[J].大学物理实验,2024,37(01):104-108.DOI:10.14139/j.cnki.cn22-1228.2024.01.021.
[4]Magnuski M ,Średniawa W ,Paluch K , et al.Pylabianca: comprehensive and user‑friendly Python package for single‑neuron data analysis.[J].Acta neurobiologiae experimentalis,2023,83(4):432-446.
[5]JaramilloJimenez A ,MantillaRamos J Y ,Tovar D , et al.Reproducible Python workflow for multi‐site resting‐state EEG analysis: From raw data to group classification[J].Alzheimer's Dementia,2023,19(S14):
[6]C. P F ,R. J M .Davos: A Python package “smuggler” for constructing lightweight reproducible notebooks[J].SoftwareX,2024,25
[7]Jakub W ,Wojciech S .Version [1.1]- [pyFDM: A python library for uncertainty decision analysis methods][J].SoftwareX,2024,25101607-.
[8]Ángel J M ,Ricardo G ,López L M G , et al.PyKernelLogit: Penalised maximum likelihood estimation of Kernel Logistic Regression in Python[J].Software Impacts,2024,19
[9]盛从蟒.基于区块链的二手车租赁系统的设计与实现[D].华中科技大学,2022.DOI:10.27157/d.cnki.ghzku.2022.000087.
[10]王寅.基于Elastic Stack的C2B二手车商户竞拍推荐系统的设计与实现[D].华东师范大学,2021.DOI:10.27149/d.cnki.ghdsu.2021.002743.
[11]卢鑫海,余建坤.基于区块链的二手车交易系统研究[J].软件导刊,2021,20(09):185-190.
[12]龙良洲.二手车价格智能评估方法及原型系统研究[D].大连理工大学,2021.DOI:10.26991/d.cnki.gdllu.2021.002797.
[13]谢凌霄.二手车试驾性能评估系统的研究与实现[D].湖南大学,2021.DOI:10.27135/d.cnki.ghudu.2021.002504.
[14]吕鹏飞.基于协同过滤的易车二手车电商系统设计与实现[D].北京交通大学,2020.DOI:10.26944/d.cnki.gbfju.2020.001198.
[15]曾诚.基于Python的网络爬虫及数据可视化和预测分析[J].信息与电脑(理论版),2020,32(09):167-169.
[16]张春光.基于Java EE的二手车物流系统的设计与实现[D].西安电子科技大学,2020.DOI:10.27389/d.cnki.gxadu.2020.001891.
[17]袁莹静,陈婷,陈龙等.基于Web的二手车交易系统的设计与实现[J].软件,2020,41(04):195-199.
[18]潘浩楠.基于梯度提升决策树组合模型的二手车金融用户画像系统[D].中国科学院大学(中国科学院人工智能学院),2020.DOI:10.27824/d.cnki.gzkdx.2020.000031.
[19]徐锐.基于某二手车交易平台的产品个性化推荐方法及其系统[D].浙江理工大学,2020.DOI:10.27786/d.cnki.gzjlg.2020.000061.
[20]陈君.数据挖掘技术在二手车交易系统中的应用[J].计算机技术与发展,2020,30(05):180-184.
逝者如斯夫,不舍昼夜。转眼间,大学生活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?
感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。
少年,追风赶月莫停留,平荒尽处是春山。