本文代码文档下载地址:https://download.youkuaiyun.com/download/geek_xiong/11576968
目录
房屋管理
主要内容是房屋的管理。包括发布的房源展示在个人中心中,主页显示订单量最多的房源图片以及房屋详情页
如图:
发布的房屋信息管理
用户登陆后,进入个人中心的我的房源,如果有发布的话,下边展示房源信息,每页最多显示五个
url:127.0.0.1:5000/user/houses
请求方式:GET
后端代码编写
大致流程:
- 获取用户id
- 根据用户id查询所有该用户发布的房子信息(返回的是对象)
- 将每个房子信息转换成字典,并放入列表中
- 返回结果
# houses.py
# GET 127.0.0.1:5000/user/houses
@api.route('/user/houses', methods=['GET'])
@login_required
def get_user_houses():
"""获取房东发布的房源信息条目"""
user_id = g.user_id
try:
user = User.query.get(user_id)
houses = user.houses
except Exception as e:
current_app.logger.error(e)
return jsonify(errno=RET.DBERR, errmsg='获取房信息异常')
# 将获取的房源信息转换成字典放到列表中
houses_li = []
if houses:
for house in houses:
houses_li.append(house.to_basic_dict())
return jsonify(errno=RET.OK, errmsg='OK', data={"houses": houses_li})
其中转换成字典,封装在了models类中
# models.py
class House(...):
...
def to_basic_dict(self):
"""将基本信息转换为字典"""
house_dict = {
"house_id": self.id,
"title": self.title,
"price": self.price,
"area_name": self.area.name,
"img_url": constants.QINIU_URL_DOMAIN + self.index_image_url if self.index_image_url else "",
"room_count": self.room_count,
"order_count": self.order_count,
"address": self.address,
"user_avatar": constants.QINIU_URL_DOMAIN + self.user.avatar_url if self.user.avatar_url else "",
"ctime": self.create_time.strftime("%Y-%m-%d")
}
return house_dict
前端代码编写
首先用户必须是登陆的状态,否则直接进入登陆界面
其次判断用户是否进行过实名认证,
如果认证过,直接显示发布的房源信息,并显示发布按钮
如果没有认证过,只显示去实名认证的按钮,不显示发布按钮与发布的房源信息(防止在数据库添加的显示在页面中)
URL:
- 实名认证:127.0.0.1:5000/api/v1.0/users/auth
- 获取发布的房屋信息:127.0.0.1:5000/api/v1.0/user/houses