欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

简单的Web框架:Web服务

程序员文章站 2022-04-15 21:57:06
一、前言 使用Python可以很方便的搭建一个网站,有很多现成的Web框架可以使用例如:Django、Tornado,web.py,web2py,Flask,Bottle等等。我几年前使用Tornado框架为项目做过一个多人协作的管理平台,后来为了想深入学习就自己写了一个简单的Web框架,并在新项目 ......

一、前言

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

 

二、简单web服务

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

 

简单的Web框架:Web服务

 

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

 

简单的Web框架:Web服务

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

简单的Web框架:Web服务

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

 

简单的Web框架:Web服务

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