重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
tornado简介
为月湖等地区用户提供了全套网页设计制作服务,及月湖网站建设行业解决方案。主营业务为成都网站制作、成都网站建设、月湖网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
python不仅可以用来做系统或者业务层面的开发,还可以做跟web相关的项目,目前有3个比较广泛流行的python开源web框架,有web.py、tornado、django。web.py http://webpy.org/ 它相对于其他两个框架来讲比较精简上手也比较快,当然了精简的另外一方面就是功能比较简单。tornado http://www.tornadoweb.org/ 网上流传作者的灵感来自于web.py,tornado跟其他框架相比,经常说的一个特性就是非阻塞服务。最后一个常见的django我们会在另外的文章单独再介绍,个人感觉django https://www.djangoproject.com/ 貌似更适合用来做web的前后端融合开发,但django使用起来个人觉得相对比较复杂,需要理解的概念东西比较多,tornado则相对来讲比较适合做web的后端服务,而且使用起来也简单。
tornado使用案例
什么时候我们会用到python的web框架呢?在回答这个问题之前我们先了解一下现状,我们知道当前有2个很成熟,稳定,而且使用面也很广的开源web服务端,apache和nginx,他们都能内嵌或者支持php,lua等动态扩展,可以很好地完成大部分项目对web的需求功能。apache,nginx这些web服务端,它们擅长的地方都是提供http、https或者代理服务,如果请求的连接需要后台长期运行的比如websocket服务,用起来就不太好使。现在微信的小程序都很流行,在微信的小程序里面只有2种网络通信方式可以用,一种是普通的http请求回复型的断连接,一种是支持长连接的websocket,假如需要使用小程序来实现一个长连接的功能,那么websocket则是不二之选。
下面我们通过一个websocket服务器聊天室作为例子,演示tornado框架的简单使用。
先安装tornado
编辑main.py文件内容如下:
运行main.py文件
我们再使用一个在线的websocket测试工具 http://www.websocket.org/echo.html 连接到我们的websocket服务器,记得我们使用的是普通的websocket(ws),所以务必访问http的地址,如果访问了https默认是用wss(SSL的websocket访问是不行的),如下截图所示:
一切正常的话,会提示CONNECTED代表连接websocket服务器成功,这个时候我们调用api接口发送一个消息。
我们可以看到websocket测试工具连接的websocket成功地收到我们发送的消息