第一个功能比较丰富的tornado租房项目
需求文档:
-
主页
1.1 最多5个房屋logo图片展示,点击可跳转至房屋详情页面
1.2 提供登陆/注册入口,登陆后显示用户名,点击可跳转至个人中心
1.3 用户可以选择城区、入住时间、离开时间等条件进行搜索
1.4 城区的区域信息需动态加载 -
注册
2.1 用户账号默认为手机号
2.2 图片验证码正确后才能发送短信验证码
2.3 短信验证码每60秒可发送一次
2.4 每个条件出错时有相应错误提示 -
登陆
3.1 用手机号与密码登陆
3.2 错误时有相应提示 -
房屋列表页
4.1 可根据入住离开时间、区域进行筛选,并可进行排序
4.2 房屋信息分页加载
4.3 区域信息动态加载
4.4 筛选条件更新后,页面立即刷新 -
房屋详情页
5.1 需展示的详细信息参考设计图
5.2 提供预定入口
5.3 若是房东本人查看房屋信息时,预定入口不显示 -
房屋预定
6.1 由用户确定入住时间
6.2 根据用户确定的入住离开时间实时显示合计天数与总金额 -
我的爱家
7.1 显示个人头像、手机号、用户名(用户名未设置时为用户手机号)
7.2 提供修改个人信息的入口
7.3 提供作为房客下单的查询入口
7.4 提供成为房东所需实名认证的入口
7.5 提供作为房东发布房屋信息的入口
7.6 提供作为房东查询客户订单的入口
7.7 提供退出的入口 -
个人信息修改
8.1 可以修改个人头像
8.2 可以修改用户名
8.3 登陆手机号不能修改
8.4 上传头像与用户名分开保存
8.5 上传新头像后页面理解显示新头像 -
我的订单(房客)
9.1 按时间倒序显示订单信息
9.2 订单完成后提供评价功能
9.3 已评价的订单能看到评价信息
9.4 被拒绝的订单能看到拒单原因 -
实名认证
10.1 实名认证只可进行一次
10.2 提交认证信息后再次进入只能查看信息,不能修改
10.3 认证信息包含姓名与身份证号 -
我的房源
11.1 未实名认证的用户不能发布新房源信息,需引导到实名认证页面
11.2 按时间倒序显示已经发布的房屋信息
11.3 点击房屋可以进入详情页面
11.4 对实名认证的用户提供发布新房屋的入口 -
发布新房源
12.1 需要用户填写全部房屋信息
12.2 房屋的文字信息与图片分开操作 -
客户订单(房东)
13.1 按时间倒序显示用户下的订单
13.2 对于新订单提供接单与拒单的功能
13.3 拒单必须填写拒单原因
13.4 若客户进行了订单评价,需显示 -
退出
14.1 提供退出功能
今天算是将整个项目的功能都完成了,接下来对整个项目作一个总结,也是对所学知识点的一个回顾:
-
结构方面:项目是使用python完成,用到了tornado框架,前端页面用Bootstrap来完成,Ajax进行局部数据的刷新,数据库用到了MySQL,使用Redis作为数据缓存。
-
将项目的结构进行了一个合理的拆分,不同的功能进行不同的划分,提高了项目的开发效率,和后期的维护便易程度。例如:接口方面根据业务逻辑将功能类似的划分到一个 py文件中,将不同的功能的文件划分出了HTML文件夹,lib文件夹,utils文件夹,statis文件夹等等
-
开发前提前规定好需要的接口名称,传递的参数,接口返回的参数,参数的类型,是否必须等。
-
提前规定好了状态码,使代码的返回状态统一,有利于每个人交流。
-
单独写一个配置文件,将后期可能要修改的参数提取出来,单独写到一个文件中,方便后期程序的配置更改
-
使用前后端完全分离进行开发,提高了程序的可重用性。
-
功能方面:注册页面使用了短信验证码和图片验证码,短信验证码的实现通过容联平台实现,短信验证的使用让我了解到了如何使用第三方工具。图片验证码使用的第三方插件实现,结合Redis数据库的有效期实现。
-
通过session机制实现了验证用户的登陆状态验证。
-
使用装饰器在需要验证用户身份的地方来进行了验证。
-
所有项目相关的图片都存储在了七牛(通过信息指纹的方式避免了相同数据的重复存储)中,本地用来存储图片的链接。但是最近七牛停止了其免费的测试域名的提供。