深圳市专业制作网站公司吗,帮建网站,wordpress菜单编辑,找代码的网站摘要
本研究针对传统租房管理模式存在的信息不透明、流程繁琐、效率低下等问题#xff0c;设计并实现了一个基于 Python Django 框架的在线租房管理系统。系统采用 B/S 架构#xff0c;整合了房源管理、租客管理、租赁合同管理、租金支付、评价反馈等功能模块#xff0c;实…摘要
本研究针对传统租房管理模式存在的信息不透明、流程繁琐、效率低下等问题设计并实现了一个基于 Python Django 框架的在线租房管理系统。系统采用 B/S 架构整合了房源管理、租客管理、租赁合同管理、租金支付、评价反馈等功能模块实现了租房业务的全流程数字化管理。系统前端使用 Bootstrap 框架构建响应式界面后端采用 Django REST framework 提供 API 服务数据库使用 MySQL 存储业务数据。通过实际应用验证系统具有良好的稳定性、可扩展性和用户体验能够有效提高租房管理效率降低管理成本。
1. 引言
1.1 研究背景与意义
随着城市化进程的加速和人口流动的加剧租房市场规模不断扩大。根据相关统计数据我国租房人口已超过 2 亿年租金规模超过 2 万亿元。传统的租房管理模式主要依赖线下中介和人工操作存在信息不透明、流程繁琐、效率低下等问题难以满足现代租房市场的需求。 互联网技术的发展为租房市场带来了新的机遇。在线租房平台通过整合房源信息、简化租房流程、提供在线支付等功能为房东和租客提供了更加便捷、高效的租房体验。然而目前市场上的在线租房平台存在功能不完善、用户体验差、数据安全隐患等问题需要进一步改进和完善。 本研究旨在设计并实现一个基于 Python Django 框架的在线租房管理系统通过整合房源管理、租客管理、租赁合同管理、租金支付、评价反馈等功能模块实现租房业务的全流程数字化管理。系统将为房东提供便捷的房源管理工具为租客提供丰富的房源信息和安全的租房体验为租房中介提供高效的业务管理平台具有重要的现实意义。
1.2 国内外研究现状
国外在在线租房平台的研究和应用方面起步较早已经形成了较为成熟的商业模式和技术体系。例如美国的 Zillow、Trulia、Airbnb 等平台通过整合海量房源信息、提供个性化推荐、支持在线支付等功能成为了全球知名的在线租房平台。这些平台采用了先进的信息技术如大数据分析、人工智能、区块链等提高了租房效率和用户体验。 国内在线租房平台的发展也十分迅速涌现出了链家、自如、贝壳找房、房天下等知名平台。这些平台在房源信息整合、租房流程优化、用户体验提升等方面取得了显著成效。例如贝壳找房采用了 VR 看房、在线签约等新技术提高了租房效率和用户体验自如推出了 省心租 服务为房东提供了一站式的房源管理解决方案。 然而目前国内外在线租房平台仍存在一些问题如房源信息真实性难以保证、用户信息安全存在隐患、平台盈利模式单一等。此外随着租房市场的不断发展用户对租房平台的功能和服务提出了更高的要求需要进一步加强技术创新和服务创新。
1.3 研究内容与方法
本研究的主要内容包括 系统需求分析通过问卷调查、访谈等方式了解房东、租客和租房中介的需求明确系统的功能和性能要求。 系统设计包括系统架构设计、数据库设计、功能模块设计等确定系统的技术选型和实现方案。 系统实现基于 Python Django 框架实现系统的各个功能模块包括用户认证、房源管理、租客管理、租赁合同管理、租金支付、评价反馈等。 系统测试对系统进行功能测试、性能测试、安全测试等确保系统的稳定性和可靠性。 系统部署与应用将系统部署到生产环境中进行实际应用验证评估系统的使用效果和用户满意度。 本研究采用的研究方法包括 文献研究法查阅国内外相关文献了解在线租房平台的研究现状和发展趋势为系统设计提供理论支持。 问卷调查法通过问卷调查的方式了解房东、租客和租房中介的需求和意见为系统功能设计提供依据。 案例分析法分析国内外知名在线租房平台的成功案例借鉴其设计思路和实现方法为本系统的设计和实现提供参考。 实验研究法通过实验对比不同的技术方案和算法选择最优的方案和算法提高系统的性能和用户体验。
2. 系统需求分析
2.1 功能需求
通过对房东、租客和租房中介的需求调研确定系统的主要功能需求如下 用户管理功能 用户注册、登录、信息修改用户角色管理房东、租客、管理员用户权限控制 房源管理功能 房源信息发布、编辑、删除房源信息审核房源信息搜索、筛选、排序房源信息展示包括图片、视频、文字描述等房源收藏、分享 租客管理功能 租客信息登记、查看、修改租客租房申请提交、审核租客租房历史记录查询 租赁合同管理功能 租赁合同生成、签署租赁合同查看、修改、终止租赁合同提醒到期提醒、续约提醒等 租金支付功能 租金计算、生成支付订单支持多种支付方式微信支付、支付宝、银行卡等租金支付记录查询租金逾期提醒 评价反馈功能 租客对房源和房东进行评价房东对租客进行评价评价信息展示和管理用户反馈提交和处理 统计分析功能 房源出租率统计租金收入统计用户活跃度统计热门房源分析
2.2 非功能需求 性能需求 系统响应时间应满足用户操作要求一般查询操作响应时间不超过 3 秒复杂操作响应时间不超过 10 秒系统应支持至少 1000 个并发用户同时在线操作系统应能够处理大量数据保证数据的完整性和一致性 安全性需求 系统应保证用户数据的安全性和隐私性严格遵守相关法律法规用户密码应进行加密存储防止密码泄露系统应具备完善的访问控制机制防止非法访问和操作系统应具备数据备份和恢复机制防止数据丢失 可用性需求 系统应具备良好的用户界面和操作体验使用户能够轻松上手系统应提供完善的帮助文档和在线客服解答用户疑问系统应具备高可用性保证每天 24 小时不间断运行 可扩展性需求 系统应具备良好的可扩展性能够方便地添加新的功能模块系统应支持数据量和用户数的不断增长能够通过集群化部署实现性能提升 兼容性需求 系统应支持主流浏览器Chrome、Firefox、Safari、Edge 等系统应支持多种操作系统Windows、MacOS、Linux 等系统应支持移动端访问提供良好的移动用户体验
3. 系统总体设计
3.1 系统架构设计
本系统采用 B/S浏览器 / 服务器架构将整个系统分为客户端、应用服务器和数据库服务器三个层次。系统的总体架构如图 1 所示
图 1系统总体架构图 客户端负责与用户交互接收用户请求并展示系统响应结果。客户端可以是 Web 浏览器或移动应用。 Web 服务器负责处理 HTTP 请求静态资源的存储和分发以及负载均衡。本系统使用 Nginx 作为 Web 服务器。 应用服务器是系统的核心负责处理业务逻辑和数据处理。应用服务器基于 Python Django 框架构建提供 RESTful API 接口实现与客户端的通信。应用服务器还包括任务队列和缓存服务用于处理异步任务和提高系统性能。 数据库服务器负责存储系统的所有数据包括用户信息、房源信息、租赁合同信息、租金支付信息等。本系统使用 MySQL 作为主要数据库Redis 作为缓存数据库Elasticsearch 作为搜索引擎。
3.2 系统部署架构设计
系统部署架构采用分布式集群部署方式以确保系统的高可用性和扩展性。系统部署架构如图 2 所示。 图 2系统部署架构图 负载均衡器采用 Nginx 或 HAProxy 实现负责将用户请求分发到多个 Web 服务器实现负载均衡和高可用性。 Nginx 服务器集群部署多个 Nginx 服务器处理 HTTP 请求和静态资源的分发。 应用服务器集群部署多个 Django 应用服务器处理业务逻辑和数据处理。应用服务器之间通过消息队列进行异步通信。 消息队列采用 RabbitMQ 或 Kafka 实现用于处理异步任务如邮件发送、短信通知等。 任务处理服务器集群部署多个任务处理服务器处理消息队列中的任务。 数据库集群采用 MySQL 主从复制或集群技术实现数据的高可用性和读写分离。 缓存集群部署多个 Redis 服务器实现数据缓存提高系统性能。 搜索集群部署 Elasticsearch 集群实现房源信息的快速搜索和筛选。 监控系统采用 Prometheus 和 Grafana 实现对系统的各个组件进行实时监控和性能分析确保系统的稳定运行。
3.3 系统用例图设计
系统用例图描述了系统与用户之间的交互关系展示了系统的功能边界和用户角色。系统用例图如图 3 所示。
图 3系统用例图
3.4 数据库设计
根据系统需求设计了以下主要数据表 用户表 (User)存储系统用户的基本信息包括用户 ID、用户名、密码、角色、联系方式等。 房东表 (Landlord)存储房东的详细信息包括房东 ID、用户 ID、身份证号、实名认证状态等。 租客表 (Tenant)存储租客的详细信息包括租客 ID、用户 ID、身份证号、工作信息等。 房源表 (House)存储房源的基本信息包括房源 ID、房东 ID、房源类型、地址、面积、租金、配套设施等。 房源图片表 (HouseImage)存储房源的图片信息包括图片 ID、房源 ID、图片路径等。 租房申请表 (RentalApplication)存储租客的租房申请信息包括申请 ID、租客 ID、房源 ID、申请时间、申请状态等。 租赁合同表 (RentalContract)存储租赁合同的详细信息包括合同 ID、房东 ID、租客 ID、房源 ID、租赁期限、租金金额、支付方式等。 租金支付表 (RentPayment)存储租金支付的详细信息包括支付 ID、合同 ID、支付金额、支付时间、支付状态等。 评价表 (Review)存储用户的评价信息包括评价 ID、评价人 ID、被评价人 ID、房源 ID、评价内容、评分等。 收藏表 (Collection)存储用户的收藏信息包括收藏 ID、用户 ID、房源 ID、收藏时间等。 数据库表结构详细设计如下 sql
-- 用户表
CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT COMMENT 用户ID,username VARCHAR(50) NOT NULL COMMENT 用户名,password VARCHAR(100) NOT NULL COMMENT 密码,role TINYINT NOT NULL COMMENT 角色(1:管理员,2:房东,3:租客),name VARCHAR(50) DEFAULT NULL COMMENT 姓名,phone VARCHAR(20) DEFAULT NULL COMMENT 电话,email VARCHAR(50) DEFAULT NULL COMMENT 邮箱,avatar VARCHAR(255) DEFAULT NULL COMMENT 头像,status TINYINT NOT NULL DEFAULT 1 COMMENT 状态(0:禁用,1:启用),create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),UNIQUE KEY idx_username (username),UNIQUE KEY idx_phone (phone)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户表;-- 房东表
CREATE TABLE landlord (id INT NOT NULL AUTO_INCREMENT COMMENT 房东ID,user_id INT NOT NULL COMMENT 用户ID,id_card VARCHAR(20) DEFAULT NULL COMMENT 身份证号,id_card_front VARCHAR(255) DEFAULT NULL COMMENT 身份证正面,id_card_back VARCHAR(255) DEFAULT NULL COMMENT 身份证背面,real_name_status TINYINT NOT NULL DEFAULT 0 COMMENT 实名认证状态(0:未认证,1:认证中,2:已认证,3:认证失败),bank_account VARCHAR(50) DEFAULT NULL COMMENT 银行账户,bank_name VARCHAR(50) DEFAULT NULL COMMENT 银行名称,bank_branch VARCHAR(50) DEFAULT NULL COMMENT 开户行,create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),UNIQUE KEY idx_user_id (user_id),UNIQUE KEY idx_id_card (id_card)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT房东表;-- 租客表
CREATE TABLE tenant (id INT NOT NULL AUTO_INCREMENT COMMENT 租客ID,user_id INT NOT NULL COMMENT 用户ID,id_card VARCHAR(20) DEFAULT NULL COMMENT 身份证号,id_card_front VARCHAR(255) DEFAULT NULL COMMENT 身份证正面,id_card_back VARCHAR(255) DEFAULT NULL COMMENT 身份证背面,real_name_status TINYINT NOT NULL DEFAULT 0 COMMENT 实名认证状态(0:未认证,1:认证中,2:已认证,3:认证失败),company VARCHAR(100) DEFAULT NULL COMMENT 公司名称,job_title VARCHAR(50) DEFAULT NULL COMMENT 职位,create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),UNIQUE KEY idx_user_id (user_id),UNIQUE KEY idx_id_card (id_card)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT租客表;-- 房源表
CREATE TABLE house (id INT NOT NULL AUTO_INCREMENT COMMENT 房源ID,landlord_id INT NOT NULL COMMENT 房东ID,title VARCHAR(100) NOT NULL COMMENT 标题,type TINYINT NOT NULL COMMENT 房源类型(1:整租,2:合租),bedroom_num TINYINT NOT NULL COMMENT 卧室数量,living_room_num TINYINT NOT NULL COMMENT 客厅数量,bathroom_num TINYINT NOT NULL COMMENT 卫生间数量,area DECIMAL(5,2) NOT NULL COMMENT 面积(平方米),floor VARCHAR(20) NOT NULL COMMENT 楼层,total_floor TINYINT NOT NULL COMMENT 总楼层,orientation VARCHAR(20) DEFAULT NULL COMMENT 朝向,decoration VARCHAR(20) DEFAULT NULL COMMENT 装修,rent DECIMAL(10,2) NOT NULL COMMENT 租金,payment_method TINYINT NOT NULL COMMENT 支付方式(1:押一付一,2:押一付三,3:押一付六,4:押一付十二),address VARCHAR(255) NOT NULL COMMENT 地址,city VARCHAR(50) NOT NULL COMMENT 城市,district VARCHAR(50) NOT NULL COMMENT 区域,community VARCHAR(100) NOT NULL COMMENT 小区,longitude DECIMAL(10,6) NOT NULL COMMENT 经度,latitude DECIMAL(10,6) NOT NULL COMMENT 纬度,description TEXT DEFAULT NULL COMMENT 描述,facilities TEXT DEFAULT NULL COMMENT 配套设施,status TINYINT NOT NULL DEFAULT 1 COMMENT 状态(0:下架,1:上架,2:已出租),is_verified TINYINT NOT NULL DEFAULT 0 COMMENT 审核状态(0:未审核,1:已审核),view_count INT NOT NULL DEFAULT 0 COMMENT 浏览次数,create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),KEY idx_landlord_id (landlord_id),KEY idx_city_district (city,district),KEY idx_rent (rent),KEY idx_area (area),KEY idx_status (status)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT房源表;-- 房源图片表
CREATE TABLE house_image (id INT NOT NULL AUTO_INCREMENT COMMENT 图片ID,house_id INT NOT NULL COMMENT 房源ID,image_url VARCHAR(255) NOT NULL COMMENT 图片URL,is_cover TINYINT NOT NULL DEFAULT 0 COMMENT 是否封面(0:否,1:是),sort INT NOT NULL DEFAULT 0 COMMENT 排序,create_time DATETIME NOT NULL COMMENT 创建时间,PRIMARY KEY (id),KEY idx_house_id (house_id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT房源图片表;-- 租房申请表
CREATE TABLE rental_application (id INT NOT NULL AUTO_INCREMENT COMMENT 申请ID,tenant_id INT NOT NULL COMMENT 租客ID,house_id INT NOT NULL COMMENT 房源ID,apply_time DATETIME NOT NULL COMMENT 申请时间,expected_start_date DATE NOT NULL COMMENT 期望入住时间,expected_duration INT NOT NULL COMMENT 期望租赁时长(月),status TINYINT NOT NULL DEFAULT 1 COMMENT 状态(1:待处理,2:已接受,3:已拒绝,4:已取消),remark VARCHAR(255) DEFAULT NULL COMMENT 备注,handle_time DATETIME DEFAULT NULL COMMENT 处理时间,create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),KEY idx_tenant_id (tenant_id),KEY idx_house_id (house_id),KEY idx_status (status)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT租房申请表;-- 租赁合同表
CREATE TABLE rental_contract (id INT NOT NULL AUTO_INCREMENT COMMENT 合同ID,landlord_id INT NOT NULL COMMENT 房东ID,tenant_id INT NOT NULL COMMENT 租客ID,house_id INT NOT NULL COMMENT 房源ID,contract_no VARCHAR(50) NOT NULL COMMENT 合同编号,start_date DATE NOT NULL COMMENT 开始日期,end_date DATE NOT NULL COMMENT 结束日期,rent DECIMAL(10,2) NOT NULL COMMENT 租金,deposit DECIMAL(10,2) NOT NULL COMMENT 押金,payment_method TINYINT NOT NULL COMMENT 支付方式(1:押一付一,2:押一付三,3:押一付六,4:押一付十二),payment_cycle TINYINT NOT NULL COMMENT 支付周期(1:月付,2:季付,3:半年付,4:年付),next_payment_date DATE DEFAULT NULL COMMENT 下次支付日期,status TINYINT NOT NULL DEFAULT 1 COMMENT 状态(1:生效中,2:已结束,3:已终止),contract_file VARCHAR(255) DEFAULT NULL COMMENT 合同文件,sign_time DATETIME DEFAULT NULL COMMENT 签署时间,create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),UNIQUE KEY idx_contract_no (contract_no),KEY idx_landlord_id (landlord_id),KEY idx_tenant_id (tenant_id),KEY idx_house_id (house_id),KEY idx_status (status)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT租赁合同表;-- 租金支付表
CREATE TABLE rent_payment (id INT NOT NULL AUTO_INCREMENT COMMENT 支付ID,contract_id INT NOT NULL COMMENT 合同ID,payment_no VARCHAR(50) NOT NULL COMMENT 支付单号,amount DECIMAL(10,2) NOT NULL COMMENT 金额,payment_type TINYINT NOT NULL COMMENT 支付类型(1:租金,2:押金,3:其他),payment_method TINYINT NOT NULL COMMENT 支付方式(1:微信支付,2:支付宝,3:银行卡),status TINYINT NOT NULL DEFAULT 1 COMMENT 状态(1:待支付,2:支付成功,3:支付失败,4:已退款),payment_time DATETIME DEFAULT NULL COMMENT 支付时间,refund_time DATETIME DEFAULT NULL COMMENT 退款时间,transaction_id VARCHAR(100) DEFAULT NULL COMMENT 交易流水号,remark VARCHAR(255) DEFAULT NULL COMMENT 备注,create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),UNIQUE KEY idx_payment_no (payment_no),KEY idx_contract_id (contract_id),KEY idx_status (status)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT租金支付表;-- 评价表
CREATE TABLE review (id INT NOT NULL AUTO_INCREMENT COMMENT 评价ID,reviewer_id INT NOT NULL COMMENT 评价人ID,reviewer_type TINYINT NOT NULL COMMENT 评价人类型(1:房东,2:租客),reviewee_id INT NOT NULL COMMENT 被评价人ID,house_id INT NOT NULL COMMENT 房源ID,content TEXT NOT NULL COMMENT 评价内容,rating TINYINT NOT NULL COMMENT 评分(1-5),status TINYINT NOT NULL DEFAULT 1 COMMENT 状态(0:待审核,1:已通过,2:已拒绝),create_time DATETIME NOT NULL COMMENT 创建时间,update_time DATETIME NOT NULL COMMENT 更新时间,PRIMARY KEY (id),KEY idx_reviewer_id (reviewer_id),KEY idx_reviewee_id (reviewee_id),KEY idx_house_id (house_id),KEY idx_status (status)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT评价表;-- 收藏表
CREATE TABLE collection (id INT NOT NULL AUTO_INCREMENT COMMENT 收藏ID,user_id INT NOT NULL COMMENT 用户ID,house_id INT NOT NULL COMMENT 房源ID,create_time DATETIME NOT NULL COMMENT 创建时间,PRIMARY KEY (id),UNIQUE KEY idx_user_house (user_id,house_id),KEY idx_user_id (user_id),KEY idx_house_id (house_id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT收藏表;4. 系统详细设计与实现
4.1 后端服务实现
后端服务基于 Python Django 框架实现采用 MVC 架构模式将系统分为模型层、视图层和控制器层。以下是核心模块的实现细节 用户认证与权限管理模块基于 Django 的认证系统实现用户注册、登录、权限控制等功能采用 JWT 实现无状态认证。 房源管理模块实现房源信息的发布、编辑、审核、查询等功能支持图片上传和管理。 租房申请与合同管理模块实现租房申请的提交、审核、合同生成和签署等功能支持合同文件的上传和下载。 租金支付模块集成微信支付和支付宝支付接口实现租金的在线支付和管理。 评价与反馈模块实现用户对房源和房东的评价功能支持评价的审核和展示。 统计分析模块实现房源出租率、租金收入、用户活跃度等数据的统计和分析支持数据可视化展示。 以下是房源管理模块的部分实现代码示例 python
运行
# 房源管理模块from django.shortcuts import render, get_object_or_404
from django.http import JsonResponse, HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.db.models import Q
import json
import os
from datetime import datetimefrom .models import House, HouseImage, Landlord
from .serializers import HouseSerializer, HouseImageSerializer
from utils.response import SuccessResponse, ErrorResponse
from utils.permissions import is_landlord, is_admin
from utils.image_upload import upload_image# 房源列表
login_required
def house_list(request):try:# 获取查询参数city request.GET.get(city, )district request.GET.get(district, )min_rent request.GET.get(min_rent, )max_rent request.GET.get(max_rent, )house_type request.GET.get(type, )page request.GET.get(page, 1)page_size request.GET.get(page_size, 10)# 构建查询条件query Q(status1, is_verified1) # 只显示已审核且上架的房源if city:query Q(citycity)if district:query Q(districtdistrict)if min_rent and max_rent:query Q(rent__gtemin_rent, rent__ltemax_rent)elif min_rent:query Q(rent__gtemin_rent)elif max_rent:query Q(rent__ltemax_rent)if house_type:query Q(typehouse_type)# 获取房源列表houses House.objects.filter(query).order_by(-create_time)# 分页处理paginator Paginator(houses, page_size)page_obj paginator.get_page(page)# 序列化房源数据serializer HouseSerializer(page_obj, manyTrue)# 获取封面图片for house_data in serializer.data:cover_image HouseImage.objects.filter(house_idhouse_data[id], is_coverTrue).first()if cover_image:house_data[cover_image] cover_image.image_urlelse:house_data[cover_image] return SuccessResponse({total: paginator.count,page: page_obj.number,page_size: page_size,houses: serializer.data})except Exception as e:return ErrorResponse(f获取房源列表失败: {str(e)})# 房源详情
login_required
def house_detail(request, house_id):try:# 获取房源信息house get_object_or_404(House, idhouse_id, status1, is_verified1)# 增加浏览次数house.view_count 1house.save()# 序列化房源数据serializer HouseSerializer(house)# 获取房源图片images HouseImage.objects.filter(house_idhouse_id).order_by(sort)image_serializer HouseImageSerializer(images, manyTrue)# 获取房东信息landlord Landlord.objects.get(idhouse.landlord_id)landlord_info {id: landlord.id,name: landlord.user.name,phone: landlord.user.phone,avatar: landlord.user.avatar,real_name_status: landlord.real_name_status}# 获取房源评价from reviews.models import Reviewreviews Review.objects.filter(house_idhouse_id, status1).order_by(-create_time)[:5]review_count Review.objects.filter(house_idhouse_id, status1).count()review_list []for review in reviews:reviewer review.reviewer_idreviewer_type review.reviewer_typeif reviewer_type 1: # 房东reviewer_obj Landlord.objects.get(idreviewer)reviewer_name reviewer_obj.user.namereviewer_avatar reviewer_obj.user.avatarelse: # 租客from tenants.models import Tenantreviewer_obj Tenant.objects.get(idreviewer)reviewer_name reviewer_obj.user.namereviewer_avatar reviewer_obj.user.avatarreview_list.append({id: review.id,reviewer_name: reviewer_name,reviewer_avatar: reviewer_avatar,content: review.content,rating: review.rating,create_time: review.create_time.strftime(%Y-%m-%d %H:%M:%S)})return SuccessResponse({house: serializer.data,images: image_serializer.data,landlord: landlord_info,reviews: review_list,review_count: review_count})except Exception as e:return ErrorResponse(f获取房源详情失败: {str(e)})# 发布房源
login_required
is_landlord
def publish_house(request):if request.method POST:try:# 获取当前用户user request.user# 检查是否已实名认证landlord Landlord.objects.get(user_iduser.id)if landlord.real_name_status ! 2: # 未认证或认证失败return ErrorResponse(请先完成实名认证)# 获取请求数据data json.loads(request.body)# 创建房源house House(landlord_idlandlord.id,titledata.get(title),typedata.get(type),bedroom_numdata.get(bedroom_num),living_room_numdata.get(living_room_num),bathroom_numdata.get(bathroom_num),areadata.get(area),floordata.get(floor),total_floordata.get(total_floor),orientationdata.get(orientation),decorationdata.get(decoration),rentdata.get(rent),payment_methoddata.get(payment_method),addressdata.get(address),citydata.get(city),districtdata.get(district),communitydata.get(community),longitudedata.get(longitude),latitudedata.get(latitude),descriptiondata.get(description),facilitiesjson.dumps(data.get(facilities, [])),status1, # 默认上架create_timedatetime.now(),update_timedatetime.now())house.save()# 处理房源图片images data.get(images, [])if images:# 设置第一张为封面图HouseImage.objects.create(house_idhouse.id,image_urlimages[0],is_coverTrue,sort0,create_timedatetime.now())# 设置其他图片for i, image in enumerate(images[1:]):HouseImage.objects.create(house_idhouse.id,image_urlimage,is_coverFalse,sorti1,create_timedatetime.now())return SuccessResponse(房源发布成功)except Exception as e:return ErrorResponse(f房源发布失败: {str(e)})else:return ErrorResponse(请求方法错误)# 上传房源图片
login_required
is_landlord
csrf_exempt
def upload_house_image(request):if request.method POST:try:# 获取上传的文件file request.FILES.get(file)if not file:return ErrorResponse(未上传文件)# 上传图片image_url upload_image(file, house_images)return SuccessResponse({image_url: image_url})博主介绍硕士研究生专注于信息化技术领域开发与管理会使用java、标准c/c等开发语言以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年拥有近12年的管理工作经验拥有较丰富的技术架构思想、较扎实的技术功底和资深的项目管理经验。 先后担任过技术总监、部门经理、项目经理、开发组长、java高级工程师及c工程师等职位在工业互联网、国家标识解析体系、物联网、分布式集群架构、大数据通道处理、接口开发、远程教育、办公OA、财务软件工资、记账、决策、分析、报表统计等方面、企业内部管理软件(ERP、CRM等)、arggis地图等信息化建设领域有较丰富的实战工作经验拥有BS分布式架构集群、数据库负载集群架构、大数据存储集群架构以及高并发分布式集群架构的设计、开发和部署实战经验拥有大并发访问、大数据存储、即时消息等瓶颈解决方案和实战经验。 拥有产品研发和发明专利申请相关工作经验完成发明专利构思、设计、编写、申请等工作并获得发明专利1枚。 ----------------------------------------------------------------------------------- 大家在毕设选题、项目升级、论文写作就业毕业等相关问题都可以给我留言咨询非常乐意帮助更多的人或加w 908925859。 相关博客地址 csdn专业技术博客https://blog.csdn.net/mr_lili_1986?typeblog Iteye博客: https://www.iteye.com/blog/user/mr-lili-1986-163-com 门户http://www.petsqi.cn 七、其他案例 文章转载自: http://www.morning.xykst.cn.gov.cn.xykst.cn http://www.morning.slnz.cn.gov.cn.slnz.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.kzpy.cn.gov.cn.kzpy.cn http://www.morning.ldmtq.cn.gov.cn.ldmtq.cn http://www.morning.krxzl.cn.gov.cn.krxzl.cn http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn http://www.morning.sffwz.cn.gov.cn.sffwz.cn http://www.morning.mzcrs.cn.gov.cn.mzcrs.cn http://www.morning.lcbt.cn.gov.cn.lcbt.cn http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.qzzmc.cn.gov.cn.qzzmc.cn http://www.morning.pxjp.cn.gov.cn.pxjp.cn http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn http://www.morning.ntqnt.cn.gov.cn.ntqnt.cn http://www.morning.qmtzq.cn.gov.cn.qmtzq.cn http://www.morning.wjhqd.cn.gov.cn.wjhqd.cn http://www.morning.twdwy.cn.gov.cn.twdwy.cn http://www.morning.jpjxb.cn.gov.cn.jpjxb.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.xlyt.cn.gov.cn.xlyt.cn http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn http://www.morning.rnht.cn.gov.cn.rnht.cn http://www.morning.yqsr.cn.gov.cn.yqsr.cn http://www.morning.xcyzy.cn.gov.cn.xcyzy.cn http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.rfpxq.cn.gov.cn.rfpxq.cn http://www.morning.pkmw.cn.gov.cn.pkmw.cn http://www.morning.rkfxc.cn.gov.cn.rkfxc.cn http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn http://www.morning.epeij.cn.gov.cn.epeij.cn http://www.morning.pdmc.cn.gov.cn.pdmc.cn http://www.morning.xshkh.cn.gov.cn.xshkh.cn http://www.morning.xwlhc.cn.gov.cn.xwlhc.cn http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn http://www.morning.fndfn.cn.gov.cn.fndfn.cn http://www.morning.tpyjr.cn.gov.cn.tpyjr.cn http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn http://www.morning.djpgc.cn.gov.cn.djpgc.cn http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.hkysq.cn.gov.cn.hkysq.cn http://www.morning.hgwsj.cn.gov.cn.hgwsj.cn http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn http://www.morning.zcrjq.cn.gov.cn.zcrjq.cn http://www.morning.llxqj.cn.gov.cn.llxqj.cn http://www.morning.rmxk.cn.gov.cn.rmxk.cn http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn http://www.morning.mytmn.cn.gov.cn.mytmn.cn http://www.morning.nmfml.cn.gov.cn.nmfml.cn http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.hmsong.com.gov.cn.hmsong.com http://www.morning.qlry.cn.gov.cn.qlry.cn http://www.morning.glrzr.cn.gov.cn.glrzr.cn http://www.morning.kphsp.cn.gov.cn.kphsp.cn http://www.morning.rlqwz.cn.gov.cn.rlqwz.cn http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn http://www.morning.cklgf.cn.gov.cn.cklgf.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.xkyst.cn.gov.cn.xkyst.cn http://www.morning.nqbs.cn.gov.cn.nqbs.cn http://www.morning.mhnb.cn.gov.cn.mhnb.cn http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn http://www.morning.pqrhb.cn.gov.cn.pqrhb.cn http://www.morning.kqgqy.cn.gov.cn.kqgqy.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn http://www.morning.bqmhm.cn.gov.cn.bqmhm.cn http://www.morning.sxtdh.com.gov.cn.sxtdh.com http://www.morning.rntyn.cn.gov.cn.rntyn.cn http://www.morning.mpmtz.cn.gov.cn.mpmtz.cn http://www.morning.zlmbc.cn.gov.cn.zlmbc.cn http://www.morning.zfqr.cn.gov.cn.zfqr.cn