项目GIthub源码地址:https://github.com/vannesspeng/TornadoForum
Tornado介绍
Tornado是一种web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python框架)有着明显的区别:它是非阻塞式的服务器,而且速度相当快。得力于非阻塞式的方式和对epoll的运用,Tornado每秒可以处理以千计的连接,因此Tornador是实时Web服务的一个理想框架。
Tornado从诞生之初就是为了解决高并发和长连接而生的
如果是做一般的Web系统,推荐使用Flask或者Django
如果是做高并发类的系统或则WebSocket类的应用,那么推荐使用Tornado支撑高并发的web服务
Tornado的特点
- tornado不仅是一个web框架,而且还是一个Web服务器,所以它比flask、django更加容易部署。
- tornado包括了异步http客户端AsyncHttpClient。所以我们不仅能使用tornado做web系统,还能使用它做一些高并发的请求,比如爬虫类的服务。
- tornado的web框架是一个非常小的Web框架的核心。这一点和flask框架的设计理念是非常类似,非常适合做微服务类的应用。
- tornado是天然支持长连接的。我们在开发web socket类的应用,比如在线聊天工具,消息主动推送等,tornado就是非常好的选择
- 学习了tornado,就相当于学习了Python3.5引入的Asyncio库,举一反三。
项目中可以学习到知识
一、Tornado Web基础
- tornado中为什么不能使用同步io
- tornado的url配置
- define options parse_command_line
- RequestHandler
- tornado的tempalte机制
- tornado中的UIModule
二、异步IO并发编程原理
- 异步、同步、阻塞、非阻塞
- select、poll、epoll
- socket的 非阻塞请求html
- 事件循环
- 协程
三、Tornado异步http客户端AsyncHttpClient编程
- AsyncHttpClient基本使用方法
- 使用AsyncHttpClient实现一个并发的异步爬虫
四、异步驱动aiomysql、peewee-async
- aiomysql异步库完成留言板
- peewee的数据库操作(增删改查)
- peewee-async(基于协程的orm)
- peewee自动生成数据表
五、aiofiles和wtforms
- aiofiles异步写入文件
- wtforms 进行表单验证
- wtfroms 数据保存
- wtforms生成html
六、tornado项目实战经验
- tornado集成ueditor富文本
- 装饰器的原理和tornado的authenticated
- 支持异步io的authenticated_async装饰器
- model_to_dict完成序列化
- 异步方式发送短信
- 前后端分离之restful api
网友评论