- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 Werkzeug 之数据结构解读不可变类
不可变对象,即immutable object。顾名思义我们不可以修改这个对象的数据。 在Werkzeug中request 对象是不可变的,而reponse 对象是可变的。 在Werkzeug.datastructures定义的是该框架的数据结构类型。其中就实现了不可变类。 [datastructures结构图] 可以看到,文件中实现了不可变的Dict和List,其中不可变的属性控制是通
2017-09-24 16:49:03 611
翻译 WSGI Helper
WSGI Helper WSGI 帮助器为了方便在WSGI层的一些操作,WSGI提供了以下的一些类和函数。这个模块的所有功能都可以 应用到高层次抽象的Request/Response 类. 所有的帮助类和函数都位于模块werkzeug.wsgi中。(werkzeug.wsgi 模块的代码结构图) Iterator / Stream Helpers 迭代器/流 帮助器以下的类和函数有助于简化WS
2017-09-23 15:27:01 282
原创 第五章 创建高性能的索引
索引是存储引擎用于快速找到记录的一种数据结构。对于良好的性能非常关键。 是对查询性能优化最有效的手段了。 5.1 索引基础 MYSQL现在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行。 5.1.1 索引的类型 索引是在存储引擎层实现的。 B-Tree索引 值按顺序存储,每个叶子页到根的距离相同。适合超找范围数据。 不需要全表扫描,而从索引的根节点开始进行搜索。
2017-09-21 17:19:24 260
翻译 Werkzeug 之URL 路由
Werkzeug 之URL 路由原文链接http://werkzeug.pocoo.org/docs/0.12/routing/ 当需要组合控制器和视图函数时,我们需要一个调度器来实现。一个简单的实现方式是采用正则表达式匹测试路由信息,调用回调函数并返回结果。 Werkzeug 提供了一个类似Route[1]的强大功能.下文提到的所有对象都是从 werkzeug.routing 导入而不是
2017-09-16 18:48:42 1340
原创 Flask之run函数背后的秘密
一个最简单的基于Flask的web应用:from flask import Flaskapp = Flask(__name__)@app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()下面分析一下运行run()函数背后的细节: Flask 的run方法如
2017-09-09 14:09:35 5055
翻译 werkzeug的Request / Response 对象
request 和response 对象是对WSGI环境或WSGI应用的返回值的包装,其本质也是一种WSGI应用。工作原理WSGI应用必须传入两个参数:WSGI环境和WSGI启动响应(start_response)函数.start_response函数常用于服务器响应客户端过程的起始阶段。Request类对程序环境进行封装,以便客户端更好地访问request变量(表格数据,request头文件等)。
2017-09-08 16:31:36 1145
原创 第七章 事务
分类扁平事务 最简单的一种,使用最频繁 带有保存点的扁平事务 回滚到特定的保存点,保存点是易失的。系统崩溃时,保存点会消失。 链事务 嵌套事务: MYSQL不支持嵌套事务,无法满足并行事务需求。事务的实现隔离性由锁来实现。 Redo log —保证事务的原子性和持久性 Undo log 保证事务的一致性 undo不是redo的逆过程 redo通常是物理日志,记录页的物理修改操作
2017-09-04 17:30:36 292
原创 第5章 索引与算法,第6章 锁
第5章 索引与算法5.1 InnoDB存储引擎索引概述索引类型: • B+树索引 • 全文索引 • 哈希索引 B+树索引时最为常用和最为有效的索引, B+树索引并不能查找一个给定键值的具体行 查找流程: 查找数据所在的页->将页读入内存->在内存中查找数据 B+树的层数一般是2-4层,查找键值只要2-4次IO操作,查询时间只需0.02~0.04秒 5.4.1
2017-09-04 17:27:14 309
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人