• 基于 FastAPI 的房源租赁系统设计与实现


    项目背景

    传统的线下租房不便、途径少、信息更新慢,导致房屋租赁效率低。为了有效的提升租赁效率和房源信息管理、提供更优质的租赁服务。让房东出租宣传展示与房源管理、租客更好的检索房源信息、发布租房需求以及入住预定、后台房源管理、审核等一站式租赁服务平台。

    • 租客:浏览房源、收藏房源、预定房源、发布租房需求、查看电子合同。
    • 房东:发布房源、订单管理、查看电子合同。
    • 管家:查看房源信息、回复咨询、线下带看房源。
    • 管理员:用户管理、房源管理、订单管理、租房需求、实名认证、系统公告管理。

    TODO

    • 房源全文检索
    • 租房需求支持评论
    • 日租、合租模式
    • 房源推荐系统(Go开发)

    项目特色

    • 采用了七牛云OSS、CDN服务加速一些图片资源。
    • 采用 FastAPI 的后台任务实现异步发送短信验证码。
    • 采用 tortoise-orm 完成数据库操作的封装。
    • 通过模板字符串动态渲染富文本实现电子合同功能。
    • 对接阿里支付实现了订单、支付模块,对接百度地图实现当前城市定位、房源附近信息查询等功能。
    • 前端界面采用 Vue.js + Element ui 实现数据渲染,Bootstrap 实现自适应布局。

    项目体验

    项目体验地址 http://43.138.220.206:9999/huihome 由于注册需要发送短信验证码,而手机验证码服务现在只能给我的测试手机号发送验证码,因此不能使用注册服务。大家可以使用已有账号去登录体验。

    账号类别 用户名 密码 备注
    用户账号 hui 123456 租客账号
    用户账号 wang 123456 房东账号

    项目源码:HuiDBK/HuiHome: 基于FastAPI的房屋租赁系统 (github.com)

    项目还没有太完善,服务器也只是学习级别的,可能会出现很多异常,望大家多担待。

    项目启动

    1. 准备好MySQL 与 Redis数据库服务,修改相关数据库配置信息
    2. 申请第三方服务:七牛云的OSS服务、容联云的短信服务、阿里的支付服务、百度地图服务
    3. 依赖于 Python 3.7.9 编程环境
    4. 安装 requirements.txt 项目依赖 pip install -r requirements.txt
    5. 启动项目 python run.py
    6. 如果成功在本地启动项目,访问 http://127.0.0.1:8080/docs 地址查看接口文档

     

    项目部署

    1. 确保Mysql、Redis服务正常
    2. 在存在Dockerfile文件的项目目录下构建镜像 docker build -t house_rental_image . (最后.不要忘记)
    3. 运行镜像产生容器 docker run -d --name house_rental_container -p 80:80 house_rental_image
    4. docker ps 查看容器是否启动

    系统整体功能图

     

    项目结构

    项目开发整体采用的是Python的FastAPI框架来搭建系统的接口服务,接口设计遵循 Restful API接口规范。接口前后端交互都采用json格式进行数据交互,项目整体的结构如下:

     

    项目Redis缓存设计

    Redis key 规范:

    1. project : module : business : unique key
    2. 项目名 : 模块名 : 业务 : 唯一区别key
    3. 例如:用户手机短信验证码缓存
    4. house_rental:user:sms_code:13022331752
    5. 复制代码

    用户模块缓存

    房源模块缓存

     其他缓存

     系统整体ER图

     房屋属性太多故在整体ER图省略

    实际表属性更多进行了垂直分表。

    代码细节

    实名认证装饰器

    1. def real_auth_required(func):
    2. """ 实名认证装饰器 """
    3. @wraps(func)
    4. async def warp(*args, **kwargs):
  • 相关阅读:
    Tomcat部署及优化
    易观千帆 | 2023年4月证券APP月活跃用户规模盘点
    puttygen工具ppk文件版本配置
    2022牛客暑期多校训练营10(FHI)
    7 月 9 日,论道原生 Meetup 成都站开启!
    产品经理墨刀学习----注册页面
    抖音阳哥:选品师项目究竟能不能算蓝海项目?
    八大排序总是忘?快来这里~
    FAQ docker运行tomcat提示找不到文件
    值得反复研读的表连接之SORT MERGE JOIN方式
  • 原文地址:https://blog.csdn.net/wadfdhsajd/article/details/126918814