简单的Web框架:Web服务

两盒软妹~` 提交于 2020-05-05 14:41:33

一、前言

    使用Python可以很方便的搭建一个网站,有很多现成的Web框架可以使用例如:DjangoTornadoweb.pyweb2pyFlaskBottle等等。我几年前使用Tornado框架为项目做过一个多人协作的管理平台,后来为了想深入学习就自己写了一个简单的Web框架,并在新项目中投入使用已有1年左右,虽然没有上面提到的那些框架那么强大,但也勉强够用。这次刚好有时间做一个简单的记录。

 

二、简单Web服务

    下图展示了我这次要写的Web框架简单示意图,包含有哪些模块,以及它们的调用层级,模板渲染模块会在后面有空的时候再贴进来。

 

 

     浏览器向Web服务器发送请求,这个请求使用TCP协议发送到服务器,因此服务器也需要使用TCP协议才能收到请求,创建一个简单的TCP服务器就像下面代码展示的那样。

 

   打开浏览器输入http://127.0.0.1就会看到hello信息。当然作为Web服务器处理请求需要有一定的效率,上面的代码如果同时有多个请求时,只能逐个进行响应,如果采用I/O多路复用以及引入线程池的话,效果会更好一点。下面的代码引入了采用I/O多路复用的select模块,以及将接收数据投递到线程池中进行处理。这样做可以较好的提升Web服务器的处理性能。

    我用JMeter创建500用户进行并发测试,Throughput大概可以到400/秒,我使用的还是我的10年前的I3双核笔记本进行测试的,开太多用户反而是JMeter太耗了。

 

如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!