Python微型Web框架Bottle源码分析 4年前

Bottle 是一个快速,简单和轻量级的 WSGI 微型 Web 框架的 Python。它作为单个文件模块分发,除了 Python 标准库之外没有依赖关系。

选择源码分析的版本是 Release 于 2009 年 7 月 11 日的 0.4.10 (这是我能找到的最早的发布版本了)。

为什么要分析 Bottle 这个比较冷门的框架?

Python微型Web框架Bottle源码分析 Bottle 从发布至今一直贯彻的微型 Web 框架的理念。
Python微型Web框架Bottle源码分析 Bottle 一直坚持单文件发布,也就是只有一个 bottle.py 文件。
Python微型Web框架Bottle源码分析 除了 Python 标准库之外没有依赖关系。
Python微型Web框架Bottle源码分析 与 Flask、Django 都遵循 PEP-3333 的 WSGI 协议。
Python微型Web框架Bottle源码分析 0.4.10 版本代码量小,加上大量注释也只有不到 1000 行的代码。

所以,抛开框架的高级功能,单单从一个 Web 框架怎么处理请求的角度来看,Bottle 是最佳的选择。

Flask 从第一版开始就是依赖于 werkzeug 实现,更多的实现细节需要从 werkzeug 中查找。

Django 是个重型框架,不适合整体代码阅读,各个组件看看就可以。

Tornado 是个异类,和 WSGI 没有什么关系。

在阅读之前最好从 Github 上下载一份 0.4.10 版本的 Bottle 的源码,边看边阅读本文。

阅读本文你需要有如下技能:我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。

Python微型Web框架Bottle源码分析 熟悉 Python 的语法
Python微型Web框架Bottle源码分析 熟悉 HTTP 协议
Python微型Web框架Bottle源码分析 至少使用过一种 WSGI 的框架
Python微型Web框架Bottle源码分析 了解 CGI
Python微型Web框架Bottle源码分析 看得懂中文
流程结构分析

代码虽然不多,但是毫无目的的看难免思绪混乱,会看的心烦意乱,甚至会有产生「写的这是什么鬼?」的想法。

一个 Web 框架最核心也是最基本的功能就是处理 请求 和 响应。

但是在这之前,需要先创建一个 Server,才能开始处理啊!

所以大体的流程如下:

Python微型Web框架Bottle源码分析 怎么创建一个 WSGI 的 Server 。
Python微型Web框架Bottle源码分析 怎么处理到来的请求。
Python微型Web框架Bottle源码分析 怎么处理响应。
创建 WSGI Server

在 Bottle 中关于创建一个标准的 WSGI Server 涉及的类或者方法只有 3 个。

世界蛇
如果我做错了什么,对不起。
5
发布数
3
关注者
3019
累计阅读

热门教程文档

Dart
35小节
Typescript
31小节
Javascript
24小节
爬虫
6小节
Spring Boot
24小节
广告