首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >02 | Tornado源码全貌:上帝视角看Tornado

02 | Tornado源码全貌:上帝视角看Tornado

作者头像
python编程从入门到实践
发布2020-03-11 11:34:06
9850
发布2020-03-11 11:34:06
举报

正文共:1610 字 8 图 预计阅读时间:5 分钟 本篇主要从宏观的角度来为大家呈现 Tornado 源码的全貌,从上帝视角来感受一下源码的组织结构。 有人说学技术不就是coding,conding,coding ...... 这种学习方式只见树木不见森林,没有宏观的概念,当与别人聊起的时候都是说的各种细节,不能站在更高的角度来认识和思考这们技术,so还是希望大家学习东西的时候可以: 了解背景(这项技术什么背景下提出的)-->整体把握(这项技术是解决什么问题的?有哪些技术亮点?可能带来什么新的问题?)-->写demo运行(可以了解技术架构,代码组成等)-->找自己感兴趣的点研究(一个大项目的源码很多少则几千行多则几万行甚至几十万行)-->工作中使用体会(在读源码)...... 首先,我们感受一下源码的包中有哪些东西(这个是Tornado3.1.1版本):

如果有人想提前看Tornado源码注解(3.1.1版本的)可以先看看我的github: https://github.com/haishiniu/tornado3.1.1_search

(此图是本人读完3.1.1版本后梳理的框架图) 本次研究我会使用我们生产环境中的4.x版本进行分析 其次,我么来看一下核心的py文件,做一部分简单介绍: Tornado模块分类 1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 tornado.httpserver — 一个无阻塞HTTP服务器的实现 tornado.template — 模版系统 tornado.escape — HTML,JSON,URLs等的编码解码和一些字符串操作 tornado.locale — 国际化支持 2. Asynchronous networking 底层模块 tornado.ioloop — 核心的I/O循环 tornado.iostream — 对非阻塞式的 socket 的简单封装,以方便常用读写操作 tornado.httpclient — 一个无阻塞的HTTP服务器实现 tornado.netutil — 一些网络应用的实现,主要实现TCPServer类 3. Integration with other services tornado.auth — 使用OpenId和OAuth进行第三方登录 tornado.database — 简单的MySQL服务端封装 tornado.platform.twisted — 在Tornado上运行为Twisted实现的代码 tornado.websocket — 实现和浏览器的双向通信 tornado.wsgi — 与其他python网络框架/服务器的相互操作 4. Utilities tornado.autoreload — 生产环境中自动检查代码更新 tornado.gen — 一个基于生成器的接口,使用该模块保证代码异步运行 tornado.httputil — 分析HTTP请求内容 tornado.options — 解析终端参数 tornado.process — 多进程实现的封装 tornado.stack_context — 用于异步环境中对回调函数的上下文保存、异常处理 tornado.testing — 单元测试 本期就先简单的介绍一下tornado的全貌,下期开始我们会进入代码阶段,再次强调:本篇虽没有讲解具体的技术,但本篇是这个系列最重要的,没有之一!这是,后续都是!好了下期再见,期待你的加入学习!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python编程从入门到实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档