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

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)

python-项目流程分析及优化查询方法的更多相关文章

  1. python项目实现配置统一管理的方法

    一个比较大的项目总是会涉及到很多的参数,最好的方法就是在一个地方统一管理这些参数.最近看了不少的python项目,总结了两种很有意思的配置管理方法. 第一种 基于easydict实现的配置管理 首先需 ...

  2. PHP代码篇(二)-- array_column函数将二维数组格式化成固定格式的一维数组,及优化查询方法

    小白因为经常用到多表查询,比如获取一个会员领取的卡卷list,里面当然包含了1“会员优惠券记录表t_coupon_members”主表,然后2“门店优惠券表t_coupon”,和3“门店信息表t_sh ...

  3. python项目中 ,open() 方法, 如何读取json文件的位置。

    一 copy 目标文件绝对路径的URL. 固定在你电脑上的路径.简单好用.

  4. Python性能分析与优化PDF高清完整版免费下载|百度云盘

    百度云盘|Python性能分析与优化PDF高清完整版免费下载 提取码:ubjt 内容简介 全面掌握Python代码性能分析和优化方法,消除性能瓶颈,迅速改善程序性能! 对于Python程序员来说,仅仅 ...

  5. 项目架构&架构部署&网站分析&网站优化

    一.架构演变 一个项目至少由三层内容组成:web访问层.数据库层.存储层 初级阶段 单体阶段 常见场景:项目初期 部署特点:所有应用服务都在一台主机 应用特点:开发简单 应用/数据分离阶段 常见场景: ...

  6. Solr4.8.0源码分析(5)之查询流程分析总述

    Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilt ...

  7. Sql server2005 优化查询速度50个方法小结

    Sql server2005 优化查询速度50个方法小结   Sql server2005优化查询速度51法查询速度慢的原因很多,常见如下几种,大家可以参考下.   I/O吞吐量小,形成了瓶颈效应.  ...

  8. mysql性能优化-慢查询分析、优化索引和配置

    一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connec ...

  9. MS数据库优化查询最常见的几种方法

    1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大 ...

随机推荐

  1. HDU-6033 Add More Zero

    There is a youngster known for amateur propositions concerning several mathematical hard problems. N ...

  2. 常用模块(json/pickle/shelve/XML)

    一.json模块(重点) 一种跨平台的数据格式 也属于序列化的一种方式 介绍模块之前,三个问题: 序列化是什么? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化. 反序列化又是什么? 将 ...

  3. 3、使用keepalived高可用LVS实例演示

    回顾: keepalived: vrrp协议的实现: 虚拟路由器: MASTER,BACKUP VI:Virtual Instance keepalived.conf GLOBAL VRRP LVS ...

  4. webpack插件配置(一) webpack-dev-server 路径配置

    本文的路径配置主要涉及到webpack.config.js文件中devServer与output两个选项的配置 webpack-dev-server定义 webpack-dev-server主要是启动 ...

  5. Android 4.0之后的日历控件拥挤的解决办法

    本意是想做成这个样子的控件: 发现使用datepicker之后,效果完全不同,把整个日历都显示出来了.非常拥挤. 在datepicker中加入android:calendarViewShown=&qu ...

  6. React native中的组建通知通信:

    有这么一个需求,在B页面pop()回到A页面,需要A页面执行刷新,那么我们可以采用以下方法: 1:在A页面Push到B页面中,加上一个A页面中的刷新函数做为参数,然后在B页面中在pop()函数封装后通 ...

  7. 树莓派 无屏幕 安装Ubuntu系统 无头安装 无显示器 用网线

    能看到此篇博客的人说明都尝试失败了,会发现内存卡刷入Ubuntu后,无法通过ssh操作树莓派.是因为官方的ubuntu系统在初次运行时需要设定一些东西,类似windows第一次启动也需要设置那样,如果 ...

  8. mysql / sqlserver / oracle 常见数据库分页

    空闲时间里用着mysql学习开发测试平台和测试用具, 在公司里将可用的测试平台部署,将数据库换成sqlserver 巴望着能去用oracle的公司 mysql中的分页 limit是mysql的语法se ...

  9. SQL server2008安装与管理

    1.1  启动SQL server的三种形式 后台启动:计算机->右键->管理->->服务和应用程序->服务->sql server(***) Sql server ...

  10. Eclipse添加EGIT方法

    1. 安装EGIT, 其中一个方法: 2. 新建javaweb项目,测试git的使用. l  File > Team > Share Project 选择GIT 如何选择不了,则选择创建c ...