tornado(一)——基础介绍

本文介绍了Python的Tornado框架,它是一个Web框架和异步网络库,擅长处理高并发连接,解决了C10K问题。文章涵盖了Tornado的基础概念,包括安装、简单入门示例以及RequestHandler的使用,同时讲解了HTTP状态码的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档:

开发环境:

  • python3.7
  • tornado5.1

Tornado是什么?

Tornado是一个Python Web框架和异步网络库,最初是在FriendFeed上开发的。通过使用非阻塞网络I / O,Tornado可以扩展到数万个开放连接,使其成为长轮询, WebSockets和其他需要与每个用户建立长期连接的应用程序的理想选择 。

不同于那些最多只能达到10,000个并发连接的传统网络服务器,Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得其成为一个拥有非常高性能的框架。此外,它还拥有处理安全性、用户验证、社交网络以及与外部服务(如数据库和网站API)进行异步交互的工具。

tornado大致分为四个部分:

  1. tornado.web
  2. tornado.ioloop
  3. tornado.httpserver
  4. tornado.gen(当前版本可以使用async def代替)

安装

pip install tornado

简单入门

我们从简单的栗子开始,逐渐深入了解tornado吧~

Hello Tornado

# -*- coding: utf-8 -*-
# --------------------------------------
#       @Time    : 2019/1/28 上午11:43
#       @Author  : cxy =.= 
#       @File    : hello.py
#       @Software: PyCharm
#       @Desc    : 
# --------------------------------------
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options

define("port", default=8000, help="run on the given port", type=int)


class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'Hello')
        self.write(greeting + ', friendly user!')


if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(
        handlers=[
            (r"/", IndexHandler)
        ]
    )
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

编写一个Tornado应用中最多的工作是定义类继承Tornado的RequestHandler类。在这个例子中,我们创建了一个简单的应用,在给定的端口监听请求,并在根目录("/")响应请求。

你可以在命令行里尝试运行这个程序以测试输出:

python hello.py --port=8000

现在你可以在浏览器中打开http://localhost:8000, 或者打开另一个终端窗口使用curl测试我们的应用:
在这里插入图片描述
此时&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值