优化
并发
为什么需要并发 什么时候使用它 你可以使用最重要的并发模型
多线程 多进程 异步编程
需要同时处理
在未处理完全的时候也需要保持响应
线程之间共享程序上下文,多线程并不会在单核处理器上加速,甚至会增加管理线程的开销。同时由于多线程共享数据,因此就有了锁机制来保护共享数据。
gil限制,会使线程串行化
不要从flask import * 不然别人不知道你导入了什么
redis
非关系型数据库,有自己的api和语法,主要是基于内存的,速度块,同时支持list,set,zset,hash等数据结构存储,同时支持主从数据备份,操作原
fastDFS 开源的分布式文件系统
其架构包括tracker server和Storage servers 用户通过tracker server进行请求,而tracker通过调度storage server进行动作
前一个是为了实现负载均衡,后一个是为了实现文件存储
通过python代码去上传一个包
游览器请求ngnix服务器,ngnix通过分别访问django和celery服务器
首页静态化
页面数据的缓存
先访问缓存,访问不到再去查询数据库
首页为先从数据库查内容,
整个网站主要通过重定向,进行不断的跳转和连接,同时通过数据库的查询来进行显示,以及通过锁机制进行支付和购买。
历史游览记录
页码的控制 :todo
页数小于5页和大于5页
paginator进行页面控制
全文检索框架haysta
用户到----全文检索框架–搜索引擎
whoosh
csrf验证
前后端交互
可以先抽象出项目的业务逻辑
常用web程序
cookie放在客户端 session放在服务器
第一次访问时会自动创建session对象,相当于一个身份凭证 cookie里面有一个sessionid,可以找到session
session通过中间件进行实现,有五种保存方式,数据库,文件,缓存、数据库加缓存,cookie,不知道这五种方式有什么不一样的
一个网站包含域名、网站应用和服务器
ajax是个啥子东西呢,就是部分的刷新页面啦,不用因为有一点小小的变动直接加载整个页面
mysql事物,主要用于支付啦,避免出现购买不存在的商品,在进行支付之前都要进行数据库的检查操作,根据判定来看订单是否可支付
做页面,然后带一些某些小的技术细节
有一个专门计算运费的子系统,传递的参数其实也是前后端之间进行交互的重要元素,元组的key,value有妙用啊。
乐观锁和悲观锁要出来了
只是加锁的位置不一样而已,没啥大不了的,一个在查询时就加了锁,一个在操作数据库的时候加的锁。