简单的Web框架:Web服务
一、前言
使用python可以很方便的搭建一个网站,有很多现成的web框架可以使用例如:django、tornado,web.py,web2py,flask,bottle等等。我几年前使用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教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!
下一篇: java类与对象