摘要
随着城市化的快速推进,北京市房屋租赁市场日益繁荣,但也面临诸多挑战。为了解决这一问题,开发了一套基于Python、MySQL和Spark的租房系统。该系统以高效、便捷、智能为特点,旨在为房东和租客提供更好的租房体验。
Python作为后端开发语言,保证了系统的稳定性和可扩展性。MySQL数据库则负责存储和管理大量的租房信息,确保数据的准确性和安全性。而Spark的分布式计算能力,使得系统能够迅速处理海量数据,为用户提供实时、准确的租房信息推荐。通过该系统,用户则可以便捷地搜索、筛选和比较房屋,节省大量时间和精力。此外,系统还提供了智能推荐功能,根据用户的行为和偏好,为其推荐最合适的房源。总之,这套基于Python、MySQL和Spark的租房系统,不仅提高了租房市场的效率,也提升了用户体验,为北京市房屋租赁市场注入了新的活力。
关键词:北京市房屋租赁系统 Python MySQL
Abstract
With the rapid advancement of urbanization, the rental housing market in Beijing is becoming increasingly prosperous, but it also faces many challenges. To address this issue, a rental system based on Python, MySQL, and Spark has been developed. The system is characterized by efficiency, convenience, and intelligence, aiming to provide landlords and tenants with a better rental experience.
Python, as a backend development language, ensures the stability and scalability of the system. The MySQL database is responsible for storing and managing a large amount of rental information, ensuring the accuracy and security of the data. And Spark's distributed computing power enables the system to quickly process massive amounts of data, providing users with real-time and accurate rental information recommendations. Through this system, users can easily search, filter, and compare houses, saving a lot of time and energy. In addition, the system also provides intelligent recommendation function, which recommends the most suitable housing for users based on their behavior and preferences. In short, this rental system based on Python, MySQL, and Spark not only improves the efficiency of the rental market, but also enhances the user experience, injecting new vitality into the rental market in Beijing.
Keywords: Beijing rental system Python MySQL
目 录
随着经济的迅猛发展和人口规模的不断扩大,北京市的住房需求日益旺盛。然而,由于土地资源有限、房价高涨以及购房门槛提高,越来越多的居民选择租房作为解决居住问题的途径。因此,北京市房屋租赁市场逐渐成为一个庞大且复杂的系统,其背后蕴含着丰富的社会、经济和文化背景。
在城市化进程中,北京市房屋租赁系统不仅承载着满足居民基本居住需求的功能,还反映了城市社会结构和人口流动的变化。随着外来人口的涌入和本地居民的迁移,租房市场的需求日益多元化,对租房系统的稳定性和效率提出了更高的要求。
同时,政策环境对北京市房屋租赁系统的发展具有重要影响。政府出台的一系列住房政策,如限购、限贷、租金管控等,都在不同程度上影响着租房市场的供求关系和价格波动。此外,随着科技的进步,互联网和大数据技术的应用也为租房市场带来了新的发展机遇和挑战。
因此,研究北京市房屋租赁系统具有重要的理论和实践价值。通过深入剖析其背后的社会、经济、政策和技术背景,我们可以更好地理解租房市场的发展规律和未来趋势,为政策制定和市场调控提供科学依据,为租房者和出租方提供更优质的服务和支持。这不仅有助于解决当前居民住房问题,也有助于推动北京市房屋租赁市场的健康、稳定和可持续发展。
1.2 研究意义
随着城市化进程的加快,北京市的人口数量持续增长,租房市场也呈现出日益繁荣的态势。然而,租房市场的繁荣背后,也隐藏着许多问题,如租金上涨、房源紧张、信息不对称等。因此,对北京市房屋租赁系统进行深入研究,具有重大的现实意义。
研究北京市房屋租赁系统,有助于我们深入了解租房市场的运行机制和规律。通过数据分析和案例研究,可以揭示租房市场的发展趋势和变化特点,为政府制定相关政策提供科学依据。同时,对于租房者来说,了解市场情况也有助于他们做出更加明智的租房决策。此外,研究北京市房屋租赁系统,还可以为租房市场的规范化发展提供理论支持。当前,租房市场存在许多不规范的现象,如黑中介、虚假房源等。通过深入研究,我们可以提出有效的监管措施和解决方案,促进租房市场的健康发展。
最后,研究北京市房屋租赁系统,还具有深远的社会意义。租房是许多城市居民的居住方式,租房市场的稳定与否直接影响到居民的生活质量和幸福感。通过优化租房系统,我们可以为居民创造更加宜居的环境,推动城市的和谐发展。
对北京市房屋租赁系统进行深入研究,不仅有助于我们了解市场的运行机制和规律,为政府决策提供科学依据,还可以为租房市场的规范化发展提供理论支持,具有重要的现实意义和深远的社会意义。
1.3爬虫技术
网络为搜索引擎从万维网下载网页。一般分为传统爬虫和聚焦爬虫。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。通俗的讲,也就是通过源码解析来获得想要的内容。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
1.3数据清洗
数据采集:从不同的房屋租赁平台以及房地产中介获取房屋出租信息,包括房屋面积、租金、地理位置、配套设施等,可以通过网络爬虫等方式进行信息的采集。
数据清洗:处理所收集的房屋租赁信息,除去重复、错误或无效的数据,进行格式化处理和数据关联,以确保信息的准确性和完整性。
数据分析:对清洗后的房屋租赁数据进行分析,包括租金分布、不同地区房屋数量对比、热门租赁区域等。可以利用数据分析工具进行数据统计和分析,以便更好地了解市场需求和趋势。
可视化展示:通过图表、地图等方式对数据进行可视化展示,例如利用地图展示房屋分布情况、利用柱状图展示不同地区的平均租金水平等,从而更直观地呈现数据分析结果。
系统测试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性,同时保证用户可以方便快捷地获取到准确的租房信息。
1.4大数据技术
大数据的技术,如同一个神秘的魔术师,用无形的力量驾驭着海量的信息。它犹如一位高明的指挥家,将庞大的数据交响乐演绎得如此和谐,让我们在这个数字化世界里,更加深入地洞察万物。
大数据技术的魅力在于,它可以将看似无关紧要的碎片信息,经过巧妙的整合与分析,展现出惊人的价值。它让我们看到了隐藏在数据背后的规律,让我们在繁杂的信息海洋中找到了前进的方向。
在这个大数据的时代,我们的生活、工作乃至整个社会都发生了翻天覆地的变化。大数据技术不仅提升了我们的工作效率,还让我们对这个世界有了更加全面、深入的认识。让我们共同期待,大数据技术未来能为我们带来更多的惊喜与变革。
1.5 spark介绍
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
2 北京市房屋租赁系统的需求分析
北京市房屋租赁系统在数据的存储上使用的MYSQL数据库,在北京市房屋租赁系统开发中使用了了Python、HTML、pycharm、Python这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式。
在开发北京市房屋租赁系统中所使用的开发软件像pycharm开发工具、tomcat服务器、Python开发框架、MySQL5.7数据库、Photoshop图片处理软件等,这些环境从网上就能免费下载,而且网上都有安装的教程,根据教程一步一步的操作,就可以安装成功,不需要花任何费用,并且北京市房屋租赁系统是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。
2.1.3操作可行性分析
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。

图2-1 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。

图2-2 数据修改流程图
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。

图2-3 数据删除流程图
北京市房屋租赁系统划分为了管理员模块和普通用户模块这两大部分。
管理员:
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)房屋出租:管理员点击“房屋出租”菜单可以对查看到所有的房屋出租信息,管理员可以对其进行增删改查。
(3)系统用户:管理员点击“系统用户”菜单可以对系统中前台注册的用户以及管理员进行管理。
(4)房屋数据:管理员点击“房屋数据”菜单可以对查看到所有的房屋数据信息,管理员可以对其进行增删改查、导入、下载导入文档。
(5)轮播图:管理员点击“轮播图”菜单可以对首页展示的轮播图进行增删改查。
(6)通知公告:管理员点击“通知公告”菜单可以查看到系统中的所有通知公告信息,对已经存在的通知公告,管理员可以修改,也可以添加新的通知公告或者删除通知公告。
(7)资源管理:管理员点击“资源管理”菜单能够对其下子菜单租房资讯和资讯的分类进行增删改查。
(8)交流管理:管理员点击“交流管理”菜单可以对其下交流论坛和论坛的分类进行增删改查。
普通用户:
(1)首页信息:当用户进入本北京市房屋租赁系统的前台的时候,首先展示在眼前的是导航栏、轮播图等信息,用户可以根据自己个人的需求进行查看;
(2)注册登录:在系统的右上角有登录+注册按钮,如果用户想要登录到系统当中,可以点击“登录”按钮,然后填写号用户名+密码,点击“登录”按钮,系统会对你的用户名密码进行核对,正确的话就会登录成功了,如果没有账号的话,可以点击右上角的“注册”按钮,然后根据提示输入好用户信息,就可以得到账号和密码了;
(3)租房资讯:当用户点击“租房资讯”这一菜单按钮,会显示管理员在后台发布的所有的租房资讯,可以查看详情,进行收藏、点赞、评论等;
(4)交流论坛:用户点击“交流论坛”菜单显示所有的交流论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。
(5)通知公告:用户点击“通知公告”菜单显示管理员在后台发布的所有的通知公告信息,可以查看通知公告详情。
(6)房屋出租:用户点击“房屋出租”菜单可以查看所有房屋出租信息,可以按照条件查看房屋出租,或者输入关键词进行查询,点击可以进入房屋出租详细展示界面,在此界面用户可以租房、收藏、点赞和评论。
2.3.2非功能性需求分析
北京市房屋租赁系统的非功能性需求比如北京市房屋租赁系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2.1表格中:
表2.1 北京市房屋租赁系统非功能需求表
| 安全性 | 主要指北京市房屋租赁系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
| 可靠性 | 可靠性是指北京市房屋租赁系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
| 性能 | 性能是影响北京市房屋租赁系统占据市场的必要条件,所以性能最好要佳才好。 |
| 可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
| 易用性 | 用户只要跟着北京市房屋租赁系统的页面展示内容进行操作,就可以了。 |
| 可维护性 | 北京市房屋租赁系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
北京市房屋租赁系统中普通用户角色用例图如图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.2.1登录模块顺序图
登录模块主要满足了管理员以及用户的权限登录,登录模块顺序图如图3-2所示。

图3.2登录顺序图
管理员以及用户登录后均可进行添加信息操作,添加信息模块顺序图如图4-4所示。

图3.3 添加信息顺序图
3.3系统功能模块设计
北京市房屋租赁系统整体的功能模块包括管理员这个模块,实现了对房屋数据相关信息的查询管理,系统功能模块如图所示。

图3.4北京市房屋租赁系统功能模块图
3.4数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.4.1 数据库概念结构设计
下面是整个北京市房屋租赁系统中主要的数据库表总E-R实体关系图。

图3-3 北京市房屋租赁系统总E-R关系图
下面根据北京市房屋租赁系统的数据库总E-R关系图可以得出北京市房屋租赁系统需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。

图3-4 普通用户E-R关系图

图3-5 房屋出租信息E-R关系图
3.4.2数据库逻辑结构设计
通过上一小节中北京市房屋租赁系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表comment (评论)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
表forum (论坛)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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]用来搜索指定类型的论坛帖 |
表forum_type (论坛分类)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
表hits (用户点击)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
表housing_data (房屋数据)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | housing_data_id | int | 10 | 0 | N | Y | 房屋数据ID | |
| 2 | house_address | varchar | 64 | 0 | Y | N | 房屋地址 | |
| 3 | housing_area | varchar | 64 | 0 | Y | N | 房屋面积 | |
| 4 | house_orientation | varchar | 64 | 0 | Y | N | 房屋朝向 | |
| 5 | website_link | text | 65535 | 0 | Y | N | 网址链接 | |
| 6 | actual_area | varchar | 64 | 0 | Y | N | 实际面积 | |
| 7 | maintenance_time | varchar | 64 | 0 | Y | N | 维护时间 | |
| 8 | check_in_date | varchar | 64 | 0 | Y | N | 入住日期 | |
| 9 | house_floors | varchar | 64 | 0 | Y | N | 房屋楼层 | |
| 10 | is_there_an_elevator_available | varchar | 64 | 0 | Y | N | 有无电梯 | |
| 11 | parking_space_situation | varchar | 64 | 0 | Y | N | 车位情况 | |
| 12 | housing_water_use | varchar | 64 | 0 | Y | N | 房屋用水 | |
| 13 | electricity_consumption_for_buildings | varchar | 64 | 0 | Y | N | 房屋用电 | |
| 14 | housing_gas | varchar | 64 | 0 | Y | N | 房屋燃气 | |
| 15 | house_heating | varchar | 64 | 0 | Y | N | 房屋采暖 | |
| 16 | housing_rent | varchar | 64 | 0 | Y | N | 房屋租金 | |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表housing_rental (房屋出租)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | housing_rental_id | int | 10 | 0 | N | Y | 房屋出租ID | |
| 2 | title_name | varchar | 64 | 0 | Y | N | 标题名称 | |
| 3 | title_number | varchar | 64 | 0 | Y | N | 标题编号 | |
| 4 | house_type | varchar | 64 | 0 | Y | N | 房屋类型 | |
| 5 | housing_area | varchar | 64 | 0 | Y | N | 房屋地区 | |
| 6 | house_address | varchar | 64 | 0 | Y | N | 房屋地址 | |
| 7 | house_orientation | varchar | 64 | 0 | Y | N | 房屋朝向 | |
| 8 | housing_unit_type | varchar | 64 | 0 | Y | N | 房源户型 | |
| 9 | remaining_properties | int | 10 | 0 | Y | N | 0 | 剩余房源 |
| 10 | rental_price | int | 10 | 0 | Y | N | 0 | 出租价格 |
| 11 | house_pictures | varchar | 255 | 0 | Y | N | 房屋图片 | |
| 12 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
| 13 | nearby_facilities | text | 65535 | 0 | Y | N | 附近设施 | |
| 14 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 15 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notice (公告)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
表praise (点赞)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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已取消 |
表regular_users (普通用户)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
| 5 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表rental_contract (租房合同)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | rental_contract_id | int | 10 | 0 | N | Y | 租房合同ID | |
| 2 | house_type | varchar | 64 | 0 | Y | N | 房屋类型 | |
| 3 | housing_area | varchar | 64 | 0 | Y | N | 房屋地区 | |
| 4 | house_address | varchar | 64 | 0 | Y | N | 房屋地址 | |
| 5 | rental_price | int | 10 | 0 | Y | N | 0 | 出租价格 |
| 6 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 7 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 8 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
| 9 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 10 | rental_contract | varchar | 255 | 0 | Y | N | 租房合同 | |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表rental_information (租房信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | rental_information_id | int | 10 | 0 | N | Y | 租房信息ID | |
| 2 | title_name | varchar | 64 | 0 | Y | N | 标题名称 | |
| 3 | title_number | varchar | 64 | 0 | Y | N | 标题编号 | |
| 4 | house_type | varchar | 64 | 0 | Y | N | 房屋类型 | |
| 5 | housing_area | varchar | 64 | 0 | Y | N | 房屋地区 | |
| 6 | house_address | varchar | 64 | 0 | Y | N | 房屋地址 | |
| 7 | rental_price | int | 10 | 0 | Y | N | 0 | 出租价格 |
| 8 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 9 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 10 | user_phone_number | varchar | 64 | 0 | Y | N | 用户电话 | |
| 11 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
| 12 | rental_date | date | 10 | 0 | Y | N | 租房日期 | |
| 13 | number_of_rentals | int | 10 | 0 | Y | N | 0 | 租房数量 |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
4 关键模块的设计与实
北京市房屋租赁系统的详细设计与实现主要是根据前面的北京市房屋租赁系统的需求分析和北京市房屋租赁系统的总体设计来设计页面并实现业务逻辑。主要从北京市房屋租赁系统界面实现、业务逻辑实现这两部分进行介绍。
4.1首页模块
首页主要分别展示各个模块的最新动态,浏览者可以很清楚地看到不同模块的最新更新内容。并且系统首页每个部分可以跳转到相对应的模块,方便浏览者选择感兴趣的地方。
首页载入流程图如下所示。

图4.1 首页载入流程
首页如下图所示。

图4.2 首页界面
4.2注册模块
北京市房屋租赁系统的注册登录操作,用户都是从同一个注册登录页面进行注册登录,若是还未有系统账号,则进行注册操作;若是已注册账号,则用户在操作时,输入账号、密码,再选择相应的角色,如“用户”等。
用户注册流程图如下所示。

图4.3 用户注册流程
用户注册界面如下图所示。

图4.4 用户注册界面
4.3登录模块
管理员在房屋出租模块输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面。
用户登录流程图如下所示。

图4.5 登录流程图
登录界面如下图所示。

图4.6 登录界面图
4.4用户管理模块
用户通过注册了方可获得登录使用权限,此时选择注册用户选项,系统就会自动转到用户注册工作面,在注册该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该用户的基础信息后选择确认即可完成注册。检索用户信息,在新增用户信息以后,在检索工具栏中填写对应的用户信息,系统就会将该用户有关的所有信息展示出来。
用户管理流程图如下所示。

图4.7 用户管理流程图
用户管理界面如下图所示。

图4.8 用户管理模块图
4.5房屋出租模块
如果北京市房屋租赁系统的房屋出租需要修改,管理员可以通过查询电影的基本信息来查询房屋出租,查询房屋出租是通过ajax技术来进行查询的,需要传递房屋出租的电影名等参数然后在返回到该页面中,可以选中要修改或删除的那条信息,如果选中了超过一条数据,页面会挑一个窗口提醒只能选择一条数,如果没有选中数据会挑一个窗口题型必须选择一条数据。当选择确认修改的时候,后台会根据传过来的id到数据库查询,并将结果返回到修改页面中,可以在修改页面中修改刚刚选中的信息当点击确认的时候from表单会将修改的数据提交到后台并保存到数据库中,就是说如果提交的数据数据库中存在就修改,否则就保存。
房屋出租管理如下图所示。

图4.9房屋出租管理界面图
对房屋类型进行统计,并以柱状图的形式呈现,通过这个柱状图用户可以直观地看到不同类型房屋的数量对比,更清晰地了解各种房屋类型的分布情况。这样的柱状图可以让用户了解不同类型房屋的差异性,更好地进行比较和选择。
图表可视化界面如下图所示:

图4.10房屋类型统计界面
该系统还会将各个地区的房屋出租情况进行统计,呈现曲线图。通过曲线图,用户可以直观地了解不同地区房屋出租数量的变化趋势,更好地把握房屋租赁市场的走势。这样的曲线图结果可以为用户提供更全面的房屋出租信息,帮助用户做出更明智的租房选择。

图4.11地区出租走势界面
4.6租房信息模块
租房信息管理包括删除租房信息、修改租房信息、查询租房信息等,以租房信息查询为例,在视图层请求租房信息查询,反馈后,调用业务逻辑层,通过业务逻辑层的接口调用底层的数据逻辑层完成数据库联动操作。
租房信息管理的流程如所示。

图4.12租房信息管理流程
租房信息界面如图所示。

图4.13租房信息界面图
5 系统测试与结果分析
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
系统测试包括:用户登录功能测试、房屋出租展示功能测试、房屋出租添加、房屋出租搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
| 用例名称 | 用户登录系统 |
| 目的 | 测试用户通过正确的用户名和密码可否登录功能 |
| 前提 | 未登录的情况下 |
| 测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
| 预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
| 实际结果 | 实际结果与预期结果一致 |
房屋出租查看功能测试:
表5-2 房屋出租查看功能测试表
| 用例名称 | 房屋出租查看 |
| 目的 | 测试房屋出租查看功能 |
| 前提 | 用户登录 |
| 测试流程 | 点击房屋出租列表 |
| 预期结果 | 可以查看到所有房屋出租 |
| 实际结果 | 实际结果与预期结果一致 |
管理员添加房屋出租界面测试:
表5-3 管理员添加房屋出租界面测试表
| 用例名称 | 房屋出租发布测试用例 |
| 目的 | 测试房屋出租发布功能 |
| 前提 | 用户正常登录情况下 |
| 测试流程 | 1)点击房屋出租管理就,然后点击添加后并填写信息。 2)点击进行提交。 |
| 预期结果 | 提交以后,页面首页会显示新的房屋出租 |
| 实际结果 | 实际结果与预期结果一致 |
房屋出租搜索功能测试:
表5-4房屋出租搜索功能测试表
| 用例名称 | 房屋出租搜索测试 |
| 目的 | 测试房屋出租搜索功能 |
| 前提 | 无 |
| 测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
| 预期结果 | 页面显示包含有搜索关键字的房屋出租 |
| 实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
| 用例名称 | 密码修改测试用例 |
| 目的 | 测试管理员密码修改功能 |
| 前提 | 管理员用户正常登录情况下 |
| 测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
| 预期结果 | 使用新的密码可以登录 |
| 实际结果 | 实际结果与预期结果一致 |
通过编写北京市房屋租赁系统的测试用例,已经检测完毕用户登录模块、房屋出租查看模块、房屋出租添加模块、房屋出租搜索模块、密码修改功能测试,通过这5大模块为北京市房屋租赁系统的后期推广运营提供了强力的技术支撑。
6 结论
在开发本北京市房屋租赁系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如Python、pycharm、HbuildX等许多开发技术,通过开发这个北京市房屋租赁系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次北京市房屋租赁系统的开发中我逐渐掌握逐渐熟悉的技术。
本次北京市房屋租赁系统的开发中我还学会了很多,例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。
在本次项目中我也暴露了诸多问题。对于Python的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]王显,李星,吴建平,等. 基于Spark框架下的IPV6地址数据处理方法、系统及设备[P]. 北京市: CN117609301A, 2024-02-27.
[2]张方伟,罗小燕,吴庆龄. Spark框架下改进NFP-growth算法的球磨机运行状态优化 [J]. 制造业自动化, 2024, 46 (02): 103-107.
[3]施永辉,杨丽敏,代琪,等. Spark框架下改进TrAdaBoost分布式入侵检测算法研究 [J]. 中国电子科学研究院学报, 2023, 18 (12): 1129-1137+1145.
[4]黄钰,刘皋. 基于Spark框架的森林防火大数据分析 [J]. 安徽林业科技, 2023, 49 (06): 31-37.
[5]谈华初 主编, 住房保障 公租房系统贯标, 谈华初 主编, 湖北建设年鉴, 长江出版社, 2022, 206, 年鉴.
[6]唐佐英 主编, 中国建设银行安顺市分行 助力地方公租房系统建设, 唐佐英 主编, 安顺年鉴, 四川科学技术出版社, 2020, 180, 年鉴.
[7]季杰,陈强仁,朱东. 基于Vue.js租房网系统的设计与实现 [J]. 电脑知识与技术, 2020, 16 (16): 91-92.
[8]宋薇. 基于Spark框架与K-means的篮球运动数据分析研究[C]// 中国体育科学学会. 第十一届全国体育科学大会论文摘要汇编. 武汉体育学院经济与管理学院;, 2019: 3.
[9]于世华,凃云杰,张君. 基于“两线四融入”的Python语言程序设计课程思政教学探索 [J]. 计算机教育, 2024, (03): 187-192.
[10]张俊英,金浩然,杨凯. 基于Python语言的桥梁结构人工地震波模拟 [J]. 内蒙古公路与运输, 2024, (01): 43-47.
[11]景文会,刘伟,黄炳程,等. 基于Python语言的中国革命历史知识图谱数据预处理技术研究 [J]. 现代信息科技, 2024, 8 (04): 116-120.
[12]陈泽帆,郭苗梓,李满,等. 基于Python语言的成本管理系统设计与开发 [J]. 锻造与冲压, 2024, (04): 26-30.
[13]Dong F . Discussion on the Teaching Reform of Python Language Programming Course for Engineering Majors Based on OBE [J]. Journal of Big Data and Computing, 2023, 1 (1):
[14]Ribeiro V S D ,Lopes P L F ,Ângelo M M L , et al. Development of a computational tool in the Python language for the application of the AHP-Gaussian method [J]. Procedia Computer Science, 2023, 221 354-361.
[15]Qilin Y . Real-Time Analysis of Youth Emotion Based on Python Language and Smart Sensor Network [J]. Mobile Information Systems, 2022, 2022
致谢
到此,整个北京市房屋租赁系统就算完成了,虽然过程十分艰难,但是等到都完成的时候,我感觉无比的自豪,虽然设计的系统还存在许多的纰漏,但是我已经拼劲全力,给自己的大学四年画上了一个圆满的句号。
在这里我首先要感谢的就是大学四年来所有教导我的老师,是他们教会了我许多的专业知识以及做人的道理,从一进校门对对开发系统一窍不通到现在能自主开发一个管理系统,里面包含了前台框架、后台框架、业务流程、数据结构、操作系统等各种知识,只有把他们统一运用好,才能够完成整个系统,这都是老师的功劳;其次我要感谢我的指导老师,在开发这个系统的时候,我遇到了无数的问题,经常通过线上、线下的方式去请教导师,每次去请教导师,他从来没有不耐烦,都是细心的引导,告诉我怎么样实现这个功能,怎么样才能使得系统更加完善,然后通过自己查询相关资料解决问题,提高了自己自主解决问题的能力,授人以鱼不如授人以渔,指导老师的这种工作态度受益终生,我也会向老师不断靠拢,向他学习,在此我只想说一句:“老师,谢谢您,您辛苦了”!最后我还要感谢我的室友、同学,在一起学习这四年,他们不但学习上给了我很多建议,在生活上更加给了我帮助,正是有他们的帮助,我的大学生涯才如此完美。
最后,希望自己在未来的道路上能够越走越远,不辜负在大学的学习以及老师们的细致的教导,追风赶月莫停留,平荒尽处是春山。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
1464

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



