摘 要
租房数据分析系统是一个基于Hadoop的大数据平台,通过采用B/S架构,Django框架以及MySQL数据库技术,旨在为用户提供全面的租房信息和数据支持。该系统具备丰富的功能,包括管理员端的系统首页、个人中心、用户管理、房屋信息管理、租房数据管理和系统管理,以及前台端的首页、房屋信息、租房数据、房屋资讯和个人中心等模块。通过这些功能,用户可以方便地查找合适的房源,了解租金走势和热门区域等信息,同时管理员可以对用户和房屋信息进行有效管理,保证系统的正常运行和数据的安全性。该系统利用Hadoop技术处理和分析大量租房数据,为用户提供准确的市场分析和决策参考,帮助用户更好地了解租房市场的情况。无论是对于房东、租客还是房产中介来说,租房数据分析系统都是一个不可或缺的工具,为租房市场的健康发展提供了有力支持。

关键词:数据分析;Django;MySQL数据库

Abstract

Rental data analysis system is a big data platform based on Hadoop. By using B/S architecture, Django framework and MySQL database technology, it aims to provide users with comprehensive rental information and data support. The system has rich functions, including the administrator’s system home page, personal center, user management, housing information management, rental data management and system management, as well as the front end of the home page, housing information, rental data, housing information and personal center and other modules. Through these functions, users can easily find the right housing, understand the rent trend and popular areas and other information, while the administrator can effectively manage the user and housing information to ensure the normal operation of the system and data security. The system uses Hadoop technology to process and analyze a large number of rental data, provides users with accurate market analysis and decision-making reference, and helps users better understand the situation of the rental market. Whether it is for landlords, tenants or real estate agents, rental data analysis system is an indispensable tool, providing strong support for the healthy development of the rental market.

Key words: data analysis; Django; MySQL database

目 录

1 绪 论 1
1.1课题背景 1
1.2 课题目的及意义 1
1.3课题研究现状 2
1.4 论文主要工作内容 2
2 系统关键技术 3
2.1 Python语言 3
2.2 MySQL数据库 3
2.3 Hadoop介绍 3
2.4 Django框架 4
2.5 VUE框架 4
2.6 B/S结构 4
3 系统分析 6
3.1需求分析 6
3.2 系统可行性分析 6
3.2.1 系统技术可行性 6
3.2.2 操作可行性 7
3.2.3 经济可行性 7
3.2.4社会可行性 7
3.2.5 法律可行性 8
3.3 系统性能分析 8
3.3.1 系统安全性 8
3.3.2 数据完整性 8
3.4 系统功能分析 9
3.5 系统流程分析 10
3.5.1 数据开发流程 10
3.5.2 用户登录流程 10
3.5.3 系统操作流程 11
3.5.4 添加信息流程 12
3.5.5 修改信息流程 13
3.5.6 删除信息流程 13
4 系统设计 14
4.1 系统概要 14
4.2 系统结构设计 14
4.3数据库设计 15
4.3.1 数据库设计原则 15
4.3.2 数据库实体 15
4.3.3 数据库表设计 16
4.4 系统时序图 19
4.4.1 注册时序图 20
4.4.2 登录时序图 20
4.4.3 管理员修改用户信息时序图 21
4.4.4 管理员管理系统信息时序图 22
5 系统的实现 23
5.1 基本任务 23
5.2 前台首页功能模块 23
5.3管理员模块实现 25
6 系统测试 30
6.1 测试环境 30
6.2 测试目的 30
6.3 测试概述 30
6.4 单元测试 32
6.4.1 注册测试 32
6.4.2 登录测试 32
6.5 集成测试 33
结 论 34
参考文献 35
致 谢 36

1 绪 论
1.1课题背景
随着城市化进程的加速,租房市场日益繁荣,成为城市居民生活的重要组成部分。由于租房市场信息不对称、数据分散等问题,用户在寻找合适房源、了解市场动态等方面面临着诸多困难。传统的租房信息平台往往无法满足用户对大量数据处理和分析的需求,导致用户在租房决策过程中缺乏有效的参考依据。
为了解决这一问题,基于Hadoop的租房数据分析系统应运而生。该系统利用Hadoop技术的强大数据处理能力,整合分散的租房数据,通过大数据分析技术挖掘出有价值的信息,为用户提供准确的市场分析和决策参考。通过租房数据分析系统,用户可以方便地查找合适的房源,了解租金走势和热门区域等信息,同时管理员可以对用户和房屋信息进行有效管理,保证系统的正常运行和数据的安全性。
租房数据分析系统的研究和应用对于租房市场的健康发展具有重要意义。它不仅能够帮助用户更好地了解租房市场的情况,为租房决策提供参考依据,还能够促进租房市场的规范化和透明化发展。随着大数据技术的不断发展和完善,相信租房数据分析系统将在未来的租房市场中发挥更加重要的作用。
1.2 课题目的及意义
在快速发展的都市环境中,租房已成为许多城市居民的基本需求。随着互联网与大数据技术的飞速进步,租房数据分析系统的研究开发旨在通过技术手段解决租房市场中存在的信息不对称问题,提高市场效率,优化租房体验。本研究致力于构建一个高效、准确、用户友好的分析平台,该平台能够处理和分析海量的租房数据,提供深入的市场洞察,从而辅助用户做出更明智的租房选择。对于管理者而言,该系统还旨在提供强大的数据管理和用户管理工具,保障租房交易的安全性和透明性,推动租房市场的规范化发展。
租房数据分析系统的研究对用户来说,系统提供了一个集中化的信息平台,通过大数据分析揭示租金趋势、房源分布、价格变动等关键指标,极大地降低了租房者的信息搜索成本,提高了租房决策的效率和质量。对于房东和房产中介机构,租房数据分析系统能够帮助他们更好地理解市场需求,优化房源配置,提升服务质量,增强竞争力。从宏观角度看,该系统的建立和应用有助于规范租房市场,打击非法中介行为,保护消费者权益,促进租房市场的健康有序发展。最后,租房数据分析系统作为大数据应用的一个实例,其研究成果将丰富相关领域的方法学,为未来更多类似问题的解决提供理论支持和实践经验。
1.3课题研究现状
在国内,租房数据分析推荐系统也得到了越来越多的关注和应用。政府和企业都在加大对租房数据分析产业的投入,推动租房数据分析的普及和应用。有一些汽车销售企业已经开始尝试引入推荐系统,为用户提供更加精准的购车服务。一些互联网公司也积极参与租房数据分析推荐系统的研发和应用,通过大数据和人工智能技术为用户提供更加个性化的购车建议。
在国外,许多企业和研究机构都在积极探索租房数据分析推荐系统的技术和应用。一些大型汽车制造商如特斯拉、宝马等已经推出了自己的租房数据分析推荐系统,通过数据分析和人工智能技术为用户提供个性化的购车建议。一些互联网公司如谷歌、亚马逊等也在该领域进行了尝试,利用大数据和机器学习技术为用户推荐合适的租房数据分析。
租房数据分析推荐系统在国内外都得到了广泛的关注和应用,成为租房数据分析产业发展的重要趋势之一。随着技术的不断进步和应用场景的不断拓展,相信该领域将会取得更加显著的成果和突破。
1.4 论文主要工作内容
本文设计并实现了一个基于Hadoop的租房数据分析系统,主要包括以下具体工作内容:
(1)参考国内外相关系统开展了系统的需求分析,明确了个人中心、用户管理、房屋信息管理、租房数据管理、系统管理等主要功能需求;
(2)设计系统技术方案,采用python语言,选用MySQL数据库、Django框架来设计并实现本系统。
(3)具体介绍了各个功能模块的设计与实现。
(4)对系统的个人中心、用户管理、房屋信息管理、租房数据管理、系统管理等功能进行了全面的测试。
2 系统关键技术
2.1 Python语言
Python是一种高级编程语言,它的设计目标是易于阅读和编写。Python的语法简洁明了,使得程序员能够更专注于解决问题而不是编写代码。Python支持多种编程范式,如面向对象编程、函数式编程和过程式编程。此外,Python还拥有丰富的库和框架,可以应用于各种领域,如Web开发、数据科学、人工智能等。
Python的优点包括:易于学习和使用、跨平台、丰富的库和框架、社区活跃等方面。总之,Python是一门功能强大、易于学习和使用的编程语言,广泛应用于各个领域。
2.2 MySQL数据库
数据库系统是一个进行数据存储的系统,数据库就是这个系统的库,用来存放通过系统的数据,数据库在开发人员的日常生活中,占据了很大的地位。因为使用数据可以使自己系统存储数据更加方便、快捷。
MySQL之所以受到广大开发人员的欢迎,主要原因使因为数据库的使用是免费的。最开始的数据库研发出后,是需要收费的,但是随着MySQL的出现和不断更新,越来越多的用户去使用这款软件。首先它是开源且免费的,这样大大减少了开发的成本;第二MySQL可以在多个平台上使用,在MAC、Windows和Linux上都可以使用。其次它的性能也是十分强大的,性价比极高。最后,MySQL相比其他数据库语言来说,更加简单易于上手;可以与很多平台搭建联系,比如本文使用的Python。
2.3 Hadoop介绍
Hadoop,一个支持分布式计算的开源软件框架,它使得大数据的处理和分析成为可能。起初由Apache Software Foundation所管理并作为其下的顶级项目之一,Hadoop起源于Google的MapReduce算法和Google File System(GFS)论文,由Doug Cutting和Mike Cafarella于2005年着手开发。
Hadoop的核心设计哲学是将大数据集分解为较小的片段,这些片段可以在不同的服务器上并行处理,从而大幅度减少数据处理时间。它的两大核心组件是Hadoop Distributed File System(HDFS)和MapReduce。HDFS提供了一个高度可靠、高吞吐量的分布式存储解决方案,非常适合带有大量数据的应用程序。它把数据分成块,然后分布到多个计算机上进行存储。这种分布式特性让HDFS能够高效地处理大规模数据。
2.4 Django框架
Django用Python编写,属于开源Web应用程序框架。采用(模型M、视图V和模板t)的框架模式。该框架以比利时吉普赛爵士吉他手詹戈•莱因哈特命名。该架构的主要组件如下:
1.用于创建模型的对象关系映射。
2.最终目标是为用户设计一个完美的管理界面。
3.是目前最流行的URL设计解决方案。
4.模板语言对设计师来说是最友好的。
2.5 VUE框架
Vue.js是一款轻量级的JavaScript框架,用于构建用户界面。它采用了MVVM(Model-View-ViewModel)的架构模式,使得开发者可以更加高效地开发复杂的单页面应用程序。Vue.js具有简单易学、灵活高效的特点,并且提供了丰富的插件和工具支持,使得开发者可以快速构建出功能强大、交互友好的Web应用。Vue.js的核心特性包括响应式数据绑定、组件化开发、虚拟DOM等。响应式数据绑定使得数据的变动可以自动同步到视图上,大大减少了手动操作DOM的代码量;组件化开发可以将复杂的UI拆分成多个小组件,提高代码的可维护性和复用性;虚拟DOM则可以提高页面渲染的性能,减少不必要的重绘和回流。除了核心特性外,Vue.js还提供了许多实用的插件和工具,如Vue Router用于构建单页面应用的路由系统、Vuex用于状态管理、Vue CLI用于快速搭建项目等等。这些插件和工具可以帮助开发者更加高效地完成开发工作。
2.6 B/S结构
B/S架构,也就是浏览器/Server (Browser/Server),是在因特网技术发展过程中, C/S架构的一种改变和完善。采用该架构,可以充分利用 WWW的浏览器来完成用户接口,而在前端完成交易的部分业务,而服务端则完成了交易的基本功能。这就构成了3- tier的构造。B/S体系架构,采用了日益完善的 WWW技术,将各种 Script、 VBScript、 PythonScript、 ActiveX等技术相融合,通过一款普通的网络浏览器,既可以完成一些复杂的特定程序,又可以节省大量的资源,又可以节省大量的资源。由于视窗98/2000把浏览器技术移植到了操作系统中,所以这个架构现在已经是目前最受欢迎的应用程序架构了。
B/S架构,也就是浏览/伺服器(Browser/Server)架构,是指仅有一个伺服器(Server)被安装,而客户机则使用浏览(Browse)来执行该软件。这是因特网技术出现后, C/S架构的一种改变与完善。它充分运用日益完善的 WWW技术,并将各种 Script、 PythonScript、 ActiveX等 Script技术相融合,形成了一个崭新的体系结构技术。

3 系统分析
3.1需求分析
要想在实际的情况下,开发出一套符合使用者要求的租房数据分析系统,首先要了解使用者的需求。对租房数据分析的需求有深刻的了解,无论设计与开发工作多么优秀,都是一个成功的先决条件,也可以这么说,要不能满足用户需求的程序,是创造不出非常大的使用价值的,而且还给设计者带来很多的不利。需求分析是租房数据分析系统设计时期的比较重要的一个阶段,它的基本内容是准确地解释出系统将会能够做些什么事情的关键问题,最终完成的是一份完整的系统的使用说明。
(1)有一些功能方面的需求,通过需求分析,可以找出需要完成的几个基本功能模块。性能要求也是指在系统设计的时候,需要满足一定的要求和限制,比如响应时间、信息处理、内存容量、磁盘容量、安全等等。
(2)系统的可靠性要求也是一个必须考虑的问题,它可以将可用性和可靠性结合起来,显示了用户在使用时经常遇到的问题。硬件要求也包括需要处理错误,以表明系统如何应对环境错误。如果自己的系统收到来自其他系统的信息,这些信息违背了某些格式,这时系统应该会有什么样的响应情况。
(3)软件方面的需求还有一些逆向的需求,就是系统不能做的事情。可以说,有很多种不同的要求,而开发人员应该能够准确的理解他们的真正需要,并且可以应用到租房数据分析系统中。还有应该明确地找出一些虽然不属于当前租房数据分析系统开发的情况,但是据现在的分析,将来是非常可能会需要的可能需求。经过这个需求的分析,在设计过程中对租房数据分析系统将来有机会出现的问题有所准备,要能够确实需要的时候可以更加轻松的修改。
3.2 系统可行性分析
租房数据分析系统主要目标是实现网上的相关信息管理服务。在确定了目标后,我们从以下四方面对能否实现本系统目标进行可行性分析。
3.2.1 系统技术可行性
技术可行性分析基于现在web水平、软硬件水平能否开发出租房数据分析系统,经过对市面常见租房数据分析系统了解研究对比,以及此次租房数据分析系统的估测,预计在技术方面开发本系统是可行的。第一,Python语言发展成熟且市面十分流行,由Python完成本租房数据分析系统的开发、调试,结合市面成熟的集成开发软件辅助开发,且本电脑配置win10系统,足够满足本次租房数据分析系统开发。第二,验证技术发展迅速,使得本租房数据分析系统安全性很高。综上所述,开发本租房数据分析系统完全可行。
3.2.2 操作可行性
操作可行性涉及系统的实际部署、管理和维护。对于基于Hadoop的租房数据分析系统,操作可行性主要取决于技术团队对Hadoop生态系统的熟悉程度以及Python编程能力。Hadoop需要一支具备Java和大数据处理知识的技术团队来维护和调优集群,确保数据处理流程的稳定性和效率。Python作为数据分析的首选语言,其丰富的库使得统计分析和机器学习模型的构建变得相对简单。如果团队具备这些技能或愿意进行培训学习,那么操作上是可行的。还需要考虑到长期的技术支持和版本升级,以保证系统随着技术进步而不断优化。
3.2.3 经济可行性
经济可行性分析,就是分析在现有经济情况下能否完成本租房数据分析系统的开发。下面对本系统开发、运行、维护的相关费用评估,以及投入到社会完成系统可能费用进行估算。网络资源丰富,本租房数据分析系统只需使用任选一开源服务器即可,此方面无需投入费用。开发阶段,由于本租房数据分析系统不属于大型系统,常规的电脑就可完成开发,不用购置相关硬件设备。软件方面,本系统只需使用网上免费下载的软件即可完成开发,这些软件在使用时简单易懂,无需培训,因此这方面也无需投入费用。由于本系统不属于大型系统,运行时候电费可以忽略不记。租房数据分析系统作为自己毕设,由本人开发即可完成,无需人力费用。综上,整个系统开发花费很少,所以本租房数据分析系统在经济上可行。
3.2.4社会可行性
在社会可行性分析中,首先能结合国家经济和社会发展的实际情况,还需要能够让用户更加的便利,给使用者带来多方面的高效益,使得可以比较快速的发展以及应用。
在可行性分析中,是比较清晰地发掘开发的系统带来的各种直接的有效的利益以及一些隐藏起来的好处,以便在后续的设计中更加的坚定和确信系统开发的意义。解决一些社会方面存在的问题,设计并开发系统肯定是要发现某类社会存在的问题,并且能够带来一定的社会价值。还有一些社会的影响力,是通过系统优势和切实的好处来产生的,能够在一定的情况下提高效率,肯定会增加一些社会的进步和发展。社会上的可行性,包括法律上的可行性,也包括法律上的可能性,法律上的可行性,需要社会上的许多因素,可以来实现系统建设的现实性。如果所开发的系统与国家法律或政策等相关的因素不相符合,在某些信息化的邻域中使用的是一些加密的信息或者技术问题,还有不经过正常的操作使用其他的一些公开的信息等这些情况,这样的系统的开发在法律的范围中就是不能被允许的。
其中还有一个比较重要的用户使用可行性也是通过执行系统时的可行性,是从所有情况下用户的角度来考虑系统的可行性,由于设计开发相关的系统就是站在社会中广大的用户体验考虑的,所以在这个层面考虑也是符合的。
3.2.5 法律可行性
此租房数据分析系统是自己设计的管理系统,具有很大的实际意义。因为无论是软件还是数据库,采用的都是开源代码,因此这个系统的开发和设计,并不存在侵权等问题,在法律上完全具有可行性。
综上所述,租房数据分析系统在技术、经济、操作和法律上都具有很高的可行性,开发此程序是可行的。
3.3 系统性能分析
3.3.1 系统安全性
租房数据分析系统必须由领导机构严格执行。具体要求如下:
(1)如果要使用租房数据分析系统,必须先注册才能进行登录。未获许可的使用者,不可以任意的方法,进入或浏览系统资讯及资料,因而本系统将会得到保护。
(2)在不同司法管辖区的具体实施。使用其他权限登录时,无法跳过此操作。
(3)如果专门应用,该系统将包含许多必须保密的数据和信息。该系统存在系统漏洞,发布此信息将给客户造成重大损失。因此,我们充分保证了该规则和系统的发展趋势。
3.3.2 数据完整性
(1)必须对所有的数据进行详尽的记载,而该信息的内容不得为空白。
(2)各种资料的关联一定要恰当。
(3)在不同的档案中,同一资料资讯应该互相相符。
3.4 系统功能分析
租房数据分析系统主要有管理员和用户两个功能模块。以下将对这两个功能的作用进行详细的剖析。
管理员模块:管理员是系统中的核心用户,管理员登录后,可以对后台系统进行管理。主要功能有系统首页、个人中心、用户管理、房屋信息管理、租房数据管理、系统管理等功能。管理员用例如图3-1所示。

图3-1 管理员用例图
用户:用户进入系统可以实现对首页、房屋信息、租房数据、房屋资讯、个人中心等信息进行操作。用户用例如图3-2所示。

图3-2用户用例图

3.5 系统流程分析
3.5.1 数据开发流程
租房数据分析系统开发时,首先对此系统进行需求分析,进而对系统进行模块、编码等详细设计总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如图3-3所示

图3-3系统开发流程图
3.5.2 用户登录流程
要想利用这个软件来进行系统的安全管理,首先需要登录到该软件中。如图3-4所示。

图3-4 登录流程图
3.5.3 系统操作流程
用户登录系统时需要输入正确的用户名和密码,数据库在进行匹配核实后匹配结果正确才能进入系统,若错误则提示用户名或密码错误,即无法登录。操作流程如图3-5所示。

图3-5 系统操作流程图
3.5.4 添加信息流程
管理员可以添加信息,用户添加可以自己权限内的信息,输入信息后,要想利用这个软件来进行系统的安全管理,首先需要登录到该软件中。添加信息流程如图3-6所示。

图3-6 添加信息流程图

3.5.5 修改信息流程
管理员可以修改租房数据分析信息,用户可以修改自己权限内的信息,首先进入修改信息界面,输入需要修改信息,在系统进行判定为正确和合规后修改成功,并将数据更新至数据库。信息不合法则修改失败,重新输入。修改信息流程图如图3-7所示。

图3-7 修改信息流程图
3.5.6 删除信息流程
管理员可以删除租房数据分析信息,点击删除按钮,系统会提示是否删除信息,点击确定,则信息被删除,数据库中的信息随之删除,删除信息流程图如图3-8所示。

图3-8 删除信息流程图

4 系统设计
4.1 系统概要
在对该方法进行了系统的解析之后,进行了一个包括了整体和细节的记性系统的设计。整体的设计仅仅是一个整体的方案,通过整体的方案,我们可以将整个体系中的某些部分分割开来,比如文件,文档,数据等等。经过整体的规划,我们可以将这些软件的各个部分,都分成了不同的部分。不过这仅仅是一种初步的分类,并未实际实施。
总体来说,这是一个初步的方案,也是一个工程。我们可以进行多种方案的综合,在比较中,从性能、成本、效益三方面进行比较,最后得出最佳的产品,选用好的总体设计能够减少成本,提高企业效益,从这一点来讲,整体设计非常重要的。
租房数据分析系统工作原理图如图4-1所示:

图4-1 系统工作原理图
4.2 系统结构设计
架构图是系统的体系结构,体系结构是体系结构体系的重要组成部分。租房数据分析推荐系统的总体结构设计如图4-2所示。

图4-2 系统总体架构图
4.3数据库设计
在租房数据分析系统中,以资料库为基础。当前计算机体系中最重要的是数据库。数据库的发展好坏,直接关系到整个系统的性能与运行效率。
4.3.1 数据库设计原则
利用 ER模式进行数据库的概念结构设计。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是一个关于工作环境中的事件的信息,而一个属性是关于物理特征的说明。在系统的设计过程中,资料库发挥了关键作用。下面设计出这几个关键实体的实体—关系图。
4.3.2 数据库实体
在一个资料模式中,一个被称作“实例”的实体,与真实的“事件”或者“物体”相匹配,可以与其它物体区分开来。例如,公司中的每个员工,家里中的每个家具。在系统中将对 “用户、房屋信息、租房数据、房屋资讯、系统简介、收藏表”等几个主要的实体属性进行布局,如图4-3所示:
图4-3系统局部E-R图
4.3.3 数据库表设计
租房数据分析系统有一个内部数据库。对于数据库系统设计一般基于对我国现有企业数据库系统进行优化管理的操作系统。通常广泛采用的企业数据库资源管理软件系统主要类型包括mysqlserver、mysql、oracle等。该管理系统主要采用了mysql大型数据库资源管理软件。
下表将详细列出租房数据分析系统的数据库中所有列表。每一份量表的设计成果列出数据库的表信息属于设计的一部分,下面介绍数据库中的各个表的详细信息。
表4-1:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
username varchar 100 用户名
password varchar 100 密码
image varchar 200 头像
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP

表4-2:系统简介
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
subtitle varchar 200 副标题
content longtext 4294967295 内容
picture1 longtext 4294967295 图片1
picture2 longtext 4294967295 图片2
picture3 longtext 4294967295 图片3

表4-3:收藏表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
refid bigint 商品id
tablename varchar 200 表名
name varchar 200 名称
picture longtext 4294967295 图片
type varchar 200 类型 1
inteltype varchar 200 推荐类型
remark varchar 200 备注

表4-4:房屋资讯分类
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
typename varchar 200 分类名称

表4-5:房屋资讯
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
typename varchar 200 分类名称
name varchar 200 发布人
headportrait longtext 4294967295 头像
clicknum int 点击次数 0
clicktime datetime 最近点击时间
thumbsupnum int 赞 0
crazilynum int 踩 0
storeupnum int 收藏数 0
picture longtext 4294967295 图片
content longtext 4294967295 内容

表4-6:房屋信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
fangwumingcheng varchar 200 房屋名称
fangwulouceng int 房屋楼层
fangwutupian longtext 4294967295 房屋图片
fangwumianji varchar 200 房屋面积
zulinjiage double 租赁价格
zhoubianxinxi longtext 4294967295 周边信息
fangwusheshi longtext 4294967295 房屋设施
fangwudizhi varchar 200 房屋地址
fangwuxiangqing longtext 4294967295 房屋详情
lianxifangshi varchar 200 联系方式
clicktime datetime 最近点击时间
clicknum int 点击次数 0
discussnum int 评论数 0
storeupnum int 收藏数 0

表4-7:房屋信息评论表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
refid bigint 关联表id
userid bigint 用户id
avatarurl longtext 4294967295 头像
nickname varchar 200 用户名
content longtext 4294967295 评论内容
reply longtext 4294967295 回复内容

表4-8:配置文件
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
name varchar 100 配置参数名称
value varchar 100 配置参数值
url varchar 500 url

表4-9:关于我们
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
subtitle varchar 200 副标题
content longtext 4294967295 内容
picture1 longtext 4294967295 图片1
picture2 longtext 4294967295 图片2
picture3 longtext 4294967295 图片3

表4-10:租房数据
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
photo longtext 4294967295 图片
postdate varchar 200 更新时间
renttype varchar 200 类型
price double 价格(元/月)
areanum double 面积(平米)
floor int 楼层
geju varchar 200 格局
address varchar 200 地址
laiyuan longtext 4294967295 来源

表4-11:用户
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
yonghuzhanghao varchar 200 用户账号
yonghuxingming varchar 200 用户姓名
mima varchar 200 密码
shoujihaoma varchar 200 手机号码
xingbie varchar 200 性别
nianling varchar 200 年龄
touxiang longtext 4294967295 头像

4.4 系统时序图
对于系统设计的详细描述主要采用了时序图的方式,时序图描述了对象之间传递消息的时间顺序, 用来表示用例中的行为顺序, 是强调消息时间顺序的交互图; 时序图描述的事物: 时序图描述系统中类和类之间的交互, 将这些交互建模成消息交换, 时序图描述了类以及类之间的交换以完成的期望行为的消息, 时序图中每条消息都代表了类的一个操作或者引起状态机改变的触发事件。
4.4.1 注册时序图
注册时序图,如图4-4所示。

图4-4注册时序图
4.4.2 登录时序图
登录时序图如图4-5所示。
图4-5 登录时序图
4.4.3 管理员修改用户信息时序图
管理员修改用户信息时序图如图4-6所示。

图4-6 管理员修改用户信息时序图
4.4.4 管理员管理系统信息时序图
管理员管理系统信息时序图如图4-7所示。

图4-7 管理员管理系统信息时序图

5 系统的实现
5.1 基本任务
该系统的实施方式是指能精确地描绘要实施的对象,以便后续的代码可以按照系统的实际情况用编程的方式来写相应的软件。
系统实现的基本任务如下:
(1)模块的数据结构进行设计,在之前的需求分析、概要设计中更加明确地界定更加含糊的资料类型。
(2)更加精确地对每个模板进行了更加细致的算法设计,并对每个组件的处理过程进行了算法的说明。
(3)执行实体化的资料库。
(4)其他设计:有时候,还要考虑到系统的不同,如:输入/输出格式设计、代码设计、人机对话设计等。
(5)对系统的说明书进行编写。
(6)评审:审查程序中的规则和数据库的实体构造。
系统结构可分为具有三个不同功能的包的python源代码、系统的数据库文件、界面代码。python源代码中三个不同包分别为控制、逻辑、缩写层,分别控制也不同的程序具有不同的性质。有了他们就能对系统的数据进行增删改查,完成界面的显示和数据统计,产生随机数和属性文件的读取。定时器类、翻页工具类等,包含了日期转换、字符串处理、获取编译环境等信息。这些类极大地方便了Python编程,日常开发中,经常要用来这些类。
5.2 前台首页功能模块
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到租房数据分析系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:

图5-1 系统首页界面

在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Python后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。系统注册页面如图5-2所示:

图5-2系统注册页面

房屋信息:在房屋信息页面的输入栏中输入房屋名称和房屋地址进行查询,可以查看到房屋详细信息,并根据需要进行评论或收藏操作;房屋信息页面如图5-3所示:

图5-3房屋信息详细页面

个人中心:在个人中心页面输入个人信息可以进行信息更新操作,并可以根据需要对修改密码和我的收藏进行详细操作;如图5-4所示:

图5-4个人中心界面

5.3管理员模块实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Python后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。管理员登录界面图5-5所示。

图5-5管理员登录界面

管理员进入主页面,主要功能包括对系统首页、个人中心、用户管理、房屋信息管理、租房数据管理、系统管理等进行操作。管理员主页面如图5-6所示:

图5-6管理员主界面

用户管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义用户的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括用户信息的查询、添加或删除等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现用户信息的查看、修改或删除等功能。状态管理可以通过Vuex来维护,比如在store目录下定义用户模块的状态、突变、动作和获取器。用户管理界面如图5-7所示

图5-7用户管理界面

房屋信息管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义用户的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括房屋信息的查询、添加或删除等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现房屋信息的查看、修改、查看评论或删除等功能。状态管理可以通过Vuex来维护,比如在store目录下定义房屋信息模块的状态、突变、动作和获取器。房屋信息管理界面如图5-8所示

图5-8房屋信息管理界面

租房数据管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义租房数据的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括租房数据信息的查询、添加、删除或爬取数据等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现租房数据信息的查看、修改或删除等功能。状态管理可以通过Vuex来维护,比如在store目录下定义租房数据模块的状态、突变、动作和获取器。租房数据管理界面如图5-9所示

图5-9租房数据管理界面

管理员进行爬取数据后可以在看板页面查看到系统简介、价格统计、面积统计、楼层统计、地址统计、格局统计、租房数据总数、租房数据详情等实时的分析图进行可视化管理;看板大屏选择了Echart作为数据可视化工具,它是一个使用JavaScript实现的开源可视化库,能够无缝集成到python应用中。Echart的强大之处在于其丰富的图表类型和高度的定制化能力,使得管理人员可以通过直观的图表清晰地把握租房的各项数据。
为了实现对租房信息的自动化收集和更新,我们采用了Apache Spark作为爬虫技术的基础。Spark的分布式计算能力使得系统能够高效地处理大规模数据,无论是从互联网上抓取最新的租房信息,还是对内部数据进行ETL(提取、转换、加载)操作,都能够保证数据的实时性和准确性。
在大数据分析方面,系统采用了Hadoop框架。Hadoop是一个能够处理大数据集的分布式存储和计算平台,它的核心是HDFS(Hadoop Distributed File System)和MapReduce计算模型。通过Hadoop,我们可以对收集到的大量数据进行存储和分析。看板页面如图5-10所示:

图5-10看板详细页面

管理员点击系统管理。在房屋资讯页面输入标题进行查询、添加或删除房屋资讯列表,并根据需要对房屋资讯详情信息进行查看、修改或删除操作;还可以对系统简介、轮播图管理、房屋资讯分类和关于我们进行详细操作;如图5-11所示:

图5-11系统管理界面

6 系统测试
6.1 测试环境
租房数据分析系统的测试环境如表6-1所示。
表6-1 测试环境信息表
分类 名称 版本
操作系统 Windows 7
数据库 MySQL 8.0
浏览器 Chrome 87.0.4280.88
6.2 测试目的
进行软件测试主要是为了验证产品或者系统是否完成了实现功能,测试能够防止系统出现错误,还能降低开发成本减少不必要的花销,其次测试的好处包括防止错误、降低开发成本和提高性能。其次,通过软件的检测可以对项目的安全性进行鉴别。向开发人员提供软件测试的反馈,并为项目的安全性评价提供必要的资料。此外,软件的检测保证在正式发布之前能够满足在线要求。在每一个开发过程中不断跟踪和对软件的测试。还有,软件测试还能保证系统到达预期的标准,从而能够尽快上线。
在本系统中,主要测试前端和后端,分别对系统的不同模块进行测试,比如用户注册、用户登录等功能是否实现,实现过程中是否出现问题等。是否能够处理不同的数据。前端主要测试:用户界面的实现和不同界面的交互情况,后端主要测试系统经过管理后前后端链接是否顺畅,前端界面是否及时更新,更新是有误。
6.3 测试概述
1.测试的原则
(1)测试应该以顾客的需要为基础。从用户的观点来考虑,最大的问题是软件不能达到用户的预期。有时候,软件产品的测试结果非常完美,但却不是客户最终想要的产品,那么软件产品的开发就是失败的,而测试工作也是没有任何意义的。因此测试应依照客户的需求配置环境,并且按照客户的使用习惯进行测试并评价结果。
(2)尽早测试。由于软件开发过程中的各种不同的环节都会出现问题,所以要及早进行测试,将软件的检测工作渗透到整个软件的整个寿命过程,使测试者可以及早地察觉并防止这些缺陷。减少了 bug修理费用。
(3)穷尽测试是不可能的。因为受时间和财力的制约,无法实现所有不同的输入和输出的综合测试,测试者能够基于测试的风险和轻重缓急等来决定测试的重点,由此来进行测试,并在测试成本、风险和收益间找到一个平衡点。
(4)遵循GoodEnough原则。GoodEnough原则是指测试的投入与产出要适当权衡,形成充分的质量评估过程,这个过程建立在测试花费的代价之上。测试不充分无法保证软件产品的质量,但测试投入过多会造成资源的浪费。随着测试资源投入的增加,测试的产出也是增加的,但当投入达到饱和时,测试的效果也逐渐达到饱和。
(5)测试缺陷要符合“二八”定理。缺陷“二八”理论又名 Pareto原理、缺陷集群效应,通常80%的缺陷都会出现在20%的组件上,缺陷的分配并不均匀。所以在测试中要把握好问题的关键,当发现一些问题较多的时候,就需要花更多的时间和精力来测试它们,以增加测试的效果。
(6)避免缺陷免疫:我们都了解昆虫耐药的原则,也就是长期服用某种药品后,昆虫会对其有抵抗力。而在软件测试中,缺陷也是会产生免疫性的。重复地重复同一个测试案例,找出 bug的机会就会变得更糟;对于软件来说,越是熟练的测试员,就越是忽视那些看似很微小的问题,越是难以找到错误,而这就是所谓的“杀虫剂”效应。这是因为测试者不能按时进行测试案例的升级,也可能是因为他们太了解测试案例和目标而导致的。
2.测试的方法
测试方法主要有人工测试和机器测试两种测试方法。
(1)人工测试
人工测试又称代码复审,包括个人复查、走查、会审三种方法。
(2)机器测试
计算机检测有两种方式:黑盒测试和白盒测试。黑盒测试:从外观上找出它的缺点和错误。黑盒测试是在编程接口上进行的,它仅仅是为了检验样品的执行情况,而不是根据要求规范的要求进行;白盒测试:对软件的内在构造进行了剖析,即在编程接口上进行了试验,其目的仅仅在于检验样品的执行情况,而不能满足要求规范的要求,检测来寻找问题。
在最终的检测中,本研究采取了将后黑盒子检测与白盒子检测相融合的方式。黑箱试验是为了对系统的输入、输出性能进行测试,以发现其性能上的误差和潜在的不足。白箱试验的目的是为了检测程序和程序的运行路线,从而找出运行中的问题。该系统有两种方式:单位试验和综合试验。
6.4 单元测试
6.4.1 注册测试
在对登录模块进行测试时,先键入登录名称和密码,再按下登录键测试是否能正常登录系统。如果信息填写错误,能否弹出弹框,用来提示用户何处输入错误。
注册测试用例如下表所示。
表6-2注册测试用例
测试模块 会员注册模块测试
测试目的 测试当注册信息输入不符合要求时,系统是否能进行相应处理并给出提示。
测试方法 黑盒测试
测试数据 1不输入用户名和密码,直接点击注册。
2输入未注册过的用户名。例如:qwer
3输入正确用户名,两次密码不一样。例如:用户名qwerty、密码 0001,确认密码1111
预期结果 1 界面不跳转,弹出对话框,提示用户输入必填项。
2界面跳转,弹出对话框,提示用户注册成功。
3界面不跳转,弹出对话框,提示两次密码不一致。
实际结果 与预期结果相同。
结论 注册模块实现成功。
6.4.2 登录测试
登录模块需要测试的功能有:输入登录名和密码,点击“登录”按钮,如果信息添加正确,是否正常进入系统首页。如果信息填写错误,能否弹出弹框,提示用户信息输入有误。登录测试用例如下表所示。
表6-3登录测试用例

6.5 集成测试
集成测试的方案主要如下所述:
(1)在完成安装部署后,将该系统移植到其他电脑,并可以顺利地运行该系统。
(2)用户信息管理模块综合测试,新增一个新的使用者 qq,指定一个普通的 角色,查看普通角色的特权,并储存设定。作为 qq登录,以了解所具有的权利。
(3)根据租房数据分析系统的具体设计和实施,采用多种角色的方式,对各个模块的性能进行检测,并检测各个模块之间的逻辑功是否正确。
通过实验证明,该开发的系统能够满足租房数据分析管理程序和基础需求。

结 论
租房数据分析系统是一款公平、包容、易操作的系统,基本上能满足使用者的需求,也符合本人的初始发展目的与发展方向。本文主要研究了 Python语言和 MySQL等技术时的应用,它们都具有自己的优势,使其在实际应用中可以实现功能的稳定,同时也可以实现用户的各种需要。在具体的系统要求和功能模块的具体分析之后,进行了有针对性的设计,最终经过了测试,使整个系统可以正常工作,该租房数据分析系统设计完成。
在这个租房数据分析管理的过程中,我参照了许多有关的案例,互相学习,互相借鉴。目前已逐渐改进,但仍存在许多缺陷,需要今后继续研究。在设计过程中我遇到了很多困难,包括知识上和技术上,同时由于长时间没有进行独立开发工作,编码熟练度有了明显的下降,一些常用的函数和编码技巧也变得生疏,但好在我及时做出了学习,查阅各种资料,进行广泛的钻研,多做请教,依靠互联网和书籍不断吸取知识,完善自己,最终在师生的协助下,成功完成了该系统。
我认为此系统还是有很多优点的,首先系统结构清晰,易于理解。设计合理,符合用户习惯和人机交互要求,能给用户带来很好的使用体验。代码简洁,注释全面,易于后期的管理和维护,代码健壮,鲁棒性高,适合高并发和大用户量使用。但同时,也存在部分内容设计不合理,有待改进的情况,我会不断学习。

参考文献
[1]虞菊花,乔虹.基于Python的Web页面自动登录工具设计与实现[J].安徽电子信息职业技术学院学报,2023,22(03):19-22+28.
[2]蓝启亮,吴光耀,王帅等.基于Python的CAN网络数据库管理分析[J].汽车实用技术,2023,48(17):42-48.
[3]吴建洪. 基于Django的Web自动化测试平台的研发与应用[D].西南大学,2022.
[4]郭瀚亭.基于Django框架的文件分享平台的设计与开发[J].信息记录材料,2022,23(03)
[5]孙建军,李琪,吕强.浅析Web开发工具Django的MVC架构[J].品牌与标准化,2021(06):105-106+109.
[6]薛耀伟.基于Django框架管理界面自动生成模块的设计与实现[D].哈尔滨工业大学,2020.
[7]陈勇.基于Django框架的实时课堂投票系统设计与实现[D].大连理工大学,2021.
[8]周玥.基于Django框架的校园预约打印网站设计与实现[D].吉林大学,2019.
[9]李德水.Python条件变量实现多线程编程机制分析[J].办公自动化,2023,28(13):9-11.
[10]蔡迪阳.基于Python的网页信息爬取技术分析[J].科技资讯,2023,21(13):31-34.
[11]ZHOU D,WANG F,YE H, et al.PyCIL: a Python toolbox for class-incremental learning[J].Science China(Information Sciences),2023,66(09):291-292.
[12]Li,Shenliang,Si,Zhanjun. Information publishing system based on the framework of Django [J].Lect. Notes Electr. Eng.2019.

致 谢
时光是这个世界上最快而又最慢,最长而又最短,最平凡而又最珍贵,最容易被忽略又最令人难忘的东西,回望大学三载,可谓白驹过隙,匆匆而已。
然而,时光虽逝,宝贵的情谊却是永恒的,在这三年的光阴里,我最想感谢的就是我的家人、老师以及同窗。寸草之心,难报三春之晖,感谢我的家人,不辞辛劳,让我在求学期间,能够心无旁鹜,不为世俗所扰;天涯有尽,师恩无穷,感谢我的恩师,他温文尔雅、学识渊博让我领略到了何谓学者风范,他乐观、豁达让我体会到了广阔的胸襟与格局,尤其要感谢他在我论文撰写期间的辛勤付出,无论他工作多忙,都会给予我细致耐心地指导;山水一程,三生有幸,感谢法我的兄弟姐妹们,你们的每一次鼓励与帮助都让我倍感温暖。
最后,借此机会,祝愿身边遇到的每一位:万般熙攘化清风朗月,四方梦想皆如愿以偿。

更多推荐