01、项目导学

作者: vannesspeng | 来源:发表于2018-12-11 16:58 被阅读12次

    项目GIthub源码地址:https://github.com/vannesspeng/TornadoForum

    Tornado介绍

    Tornado是一种web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python框架)有着明显的区别:它是非阻塞式的服务器,而且速度相当快。得力于非阻塞式的方式和对epoll的运用,Tornado每秒可以处理以千计的连接,因此Tornador是实时Web服务的一个理想框架。

    Tornado从诞生之初就是为了解决高并发和长连接而生的

    如果是做一般的Web系统,推荐使用Flask或者Django
    如果是做高并发类的系统或则WebSocket类的应用,那么推荐使用Tornado支撑高并发的web服务

    Tornado的特点

    1. tornado不仅是一个web框架,而且还是一个Web服务器,所以它比flask、django更加容易部署。
    2. tornado包括了异步http客户端AsyncHttpClient。所以我们不仅能使用tornado做web系统,还能使用它做一些高并发的请求,比如爬虫类的服务。
    3. tornado的web框架是一个非常小的Web框架的核心。这一点和flask框架的设计理念是非常类似,非常适合做微服务类的应用。
    4. tornado是天然支持长连接的。我们在开发web socket类的应用,比如在线聊天工具,消息主动推送等,tornado就是非常好的选择
    5. 学习了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

    相关文章

      网友评论

        本文标题:01、项目导学

        本文链接:https://www.haomeiwen.com/subject/rewshqtx.html