1.Tornado 简介 && 本专栏搭建 tornado 项目简介
一、tornado 简介
tornado 是 Python 的 web 框架。
tornado 和主流的 web 服务器框架有明显的区别:它是非阻塞式服务器,而且速度非常快,得力于其非阻塞的方式和 epoll 的运用!
tornado 可以每秒处理数以千计的连接(号称)!
来讲一讲 tornado 速度为何会非常快?
两个常见的协议:
网络协议:http 协议:基于网络的超文本传输控制协议。
通信协议:tcp
上面也说了 tornado 速度快的一大原因是得益于其非阻塞的方式,所以下面就通过这一点来说明:
(1)传统 TCP 客户端及服务器端搭建:
搭建流程图如下:
①传统 TCP 服务器端搭建步骤及代码:
1.创建套接字 socket
2.绑定 IP 和端口号
3.设置接收数
4.处理连接
5.设置接收数据的大小
6.关闭和退出
②传统 TCP 客户端搭建步骤及代码:
1.指定服务器的 IP 和端口号
2.发送数据给服务器
3.指定发送服务器的文件大小
运行:
注意上面传统 TCP 服务器中 accept()是一个阻塞的方法(你不来我就不动!),这就会产生网络等待的问题,同时这也是多线程中线程切换的问题,会因为阻塞而造成等待!
而一开始我也说了协程是非阻塞的,所以这里就在 tcp 服务器中使用协程,引入非阻塞(让服务器接收数据的形式变为非阻塞!)——解决线程之间(服务器和客户端两个线程)的切换问题!!!
(2)引入非阻塞的 TCP 服务器端代码:
运行:
二、本 tornado 项目简介:搭建一个仿 Instagram 的网站
为什么做一个模仿 Instagram 的应用(1)偏后端和后台的开发(2)充分利用 tornado 的特点(3)积累项目经验,巩固知识点
Instagram 主要组成(1)发现或最近上传的图片页面(2)所关注的用户图片流(3)单个图片详情页面(4)数据库 Database(5)用户档案 User Profile
三、本项目大致流程
(1)从最简单开始,迭代增加功能
(2)用户,登陆,关注等
(3)数据库保存
(4)UI 和 Web 界面美化
(5)外部连接
(6)部署和运行
...(敬请期待~)
本专栏在 CSDN 开设,目前已更新完毕,如有兴趣可以去 CSDN!
版权声明: 本文为 InfoQ 作者【孤寒者】的原创文章。
原文链接:【http://xie.infoq.cn/article/321bee445f93fb251f4b3ac9a】。文章转载请联系作者。
评论