从零构建一个简单的Python框架

为什么你想要自己构建一个web框架呢?我想,原因有以下几点:

你有一个新奇的想法,觉得将会取代其他的框架

你想要获得一些名气

你遇到的问题很独特,以至于现有的框架不太合适

你对web框架是如何工作的很感兴趣,因为你想要成为一位更好的web开发者。

接下来的笔墨将着重于最后一点。这篇文章旨在通过对设计和实现过程一步一步的阐述告诉读者,我在完成一个小型的服务器和框架之后学到了什么。你可以在这个代码仓库[1]中找到这个项目的完整代码。

我希望这篇文章可以鼓励更多的人来尝试,因为这确实很有趣。它让我知道了web应用是如何工作的,而且这比我想的要容易的多!

范围

框架可以处理请求-响应周期、身份认证、数据库访问、模板生成等部分工作。Web开发者使用框架是因为,大多数的web应用拥有大量相同的功能,而对每个项目都重新实现同样的功能意义不大。

比较大的的框架如Rails和Django实现了高层次的抽象,或者说“自备电池”(“batteries-included”,这是Python的口号之一,意即所有功能都自足。)。而实现所有的这些功能可能要花费数千小时,因此在这个项目上,我们重点完成其中的一小部分。在开始写代码前,我先列举一下所需的功能以及限制。

功能:

处理HTTP的GET和POST请求。你可以在这篇wiki[2]中对HTTP有个大致的了解。

实现异步操作(我喜欢Python3的asyncio模块)。

简单的路由逻辑以及参数撷取。

像其他微型框架一样,提供一个简单的用户级API。

支持身份认证,因为学会这个很酷啊(微笑)。

限制:

将只支持HTTP1.1的一个小子集,不支持

传输编码transfer-encoding

HTTP认证


转载请注明:http://www.aierlanlan.com/grrz/52.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了