python-项目流程分析及优化查询方法

项目流程分析:  ******

1. 需求分析 2. 知识点 - 插件 3. 功能分析: - 用户登录 - session - 签名cookie PS: 主动设置超时时间:request.session.set_expiry(60 * 60 * 24 * 30) - 判断用户是否已经登录 - 装饰器 - 中间件 - 功能 - 获取并显示数据 - 模板渲染 - 返回页面,ajax获取数据 - 发送数据 - Form表单提交 - Ajax提交 4. 数据库设计 5. 功能设计 - 页面 - 数据提交
查询性能优化

表结构: Room
1 2 .. User: 1 .. 10000 Booking: user_id room_id time_id date 1 1 8:00 2017-11-11 1 2 8:00 2017-11-11 1 3 8:00 2017-11-11 1 4 8:00 2017-11-11 1 5 8:00 2017-11-11 # 需求:获取2017-11-11所有预定信息: 打印: 用户名称,会议室名称, 预定时间段 # 解决方案一:11次 bk = models.Booking.objects.filter(date=2017-11-11) for item in bk: print(item.time_id, item.room.caption, item.user.user) # 解决方案二:1次 select * from ... left join user ... join room bk = models.Booking.objects.filter(date=2017-11-11).select_related('user','room') for item in bk: print(item.time_id, item.room.caption, item.user.user) # 解决方案三:3次 select * from booking where date=2017-11-11 select * from user where id in [1,] select * from room where id in [1,2,3,4,5] bk = models.Booking.objects.filter(date=2017-11-11).prefetch_related('user','room') for item in bk: print(item.time_id, item.room.caption, item.user.user)

 

posted @ 2017-12-12 14:49  Cool·  阅读(277)  评论(0编辑  收藏  举报