Tornato入门

ops/2024/11/1 19:12:16/

参考:https://www.w3cschool.cn/pytornado/
Python Tornado 框架的终极指南!_tornado框架-CSDN博客


安装一下tornada,pip install tornado

1:直接上手第一个程序

python">import tornado.ioloop
import tornado.web# 创建一个处理 HTTP 请求的类
class MainHandler(tornado.web.RequestHandler):# 当收到get请求时,相应"Hello, Tornado!"def get(self):self.write("Hello, Tornado!")if __name__ == "__main__":# 创建一个tornadaapp = tornado.web.Application([(r"/", MainHandler)])  # [ (r"/", MainHandler) ] 是一个路由列表,其中 r"/" 表示 URL 路径,MainHandler 是处理这些路径请求的处理器类。app.listen(8888)  # 让应用程序监听本地服务器的端口 8888tornado.ioloop.IOLoop.current().start()  # 启动 Tornado 的 I/O 循环,使服务器开始监听和处理请求

2 异步处理:

python">import tornado.ioloop
import tornado.web
import tornado.genclass AsyncHandler(tornado.web.RequestHandler):async def get(self):result = await self.asynchronous_operation()self.write(f"Result: {result}")async def asynchronous_operation(self):# 异步操作,例如数据库查询或API调用await tornado.gen.sleep(2)return "Async Operation Completed"if __name__ == "__main__":app = tornado.web.Application([(r"/async", AsyncHandler)])app.listen(8888)tornado.ioloop.IOLoop.current().start()

3:通过不同的路由处理不同的请求

python">import tornado.ioloop
import tornado.webclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("Hello, Tornado!")class AboutHandler(tornado.web.RequestHandler):def get(self):self.write("About Page")if __name__ == "__main__":app = tornado.web.Application([(r"/", MainHandler),(r"/about", AboutHandler),])app.listen(8888)tornado.ioloop.IOLoop.current().start()

4:利用代码对网页进行渲染

python">import tornado.ioloop
import tornado.webclass TemplateHandler(tornado.web.RequestHandler):def get(self):data = {"title": "Tornado Template", "content": "Hello, Tornado!"}self.render("template.html", **data)  # 使用这个渲染模板template.html,将data中的内容传递到模板中if __name__ == "__main__":app = tornado.web.Application([(r"/template", TemplateHandler),], template_path="templates")  # template_path就是渲染的app.listen(8888)tornado.ioloop.IOLoop.current().start()

5:使用 Tornado 框架实现一个简单的 WebSocket 服务器。

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适用于实时应用,例如聊天应用、在线游戏等。

python">import tornado.ioloop
import tornado.web
import tornado.websocketclass WebSocketHandler(tornado.websocket.WebSocketHandler):def open(self):print("WebSocket Connection Opened")def on_message(self, message):self.write_message(f"You said: {message}")def on_close(self):print("WebSocket Connection Closed")if __name__ == "__main__":app = tornado.web.Application([(r"/websocket", WebSocketHandler),])app.listen(8888)tornado.ioloop.IOLoop.current().start()

客户端示例

一个简单的 WebSocket 客户端可以通过浏览器控制台或 JavaScript 文件进行测试。可以使用以下 JavaScript 代码来测试 WebSocket 服务器:

const ws = new WebSocket('ws://localhost:8888/websocket');ws.onopen = (event) => {console.log('Connected to WebSocket server.');ws.send('Hello, Server!');
};ws.onmessage = (event) => {console.log('Received from server: ' + event.data);
};ws.onclose = (event) => {console.log('Disconnected from WebSocket server.');
};ws.onerror = (error) => {console.error('WebSocket error: ' + error);
};

如何运行这段代码

  1. 确保安装了 Tornado 库:pip install tornado
  2. 将上述 Python 代码保存为 server.py
  3. 在命令行中运行:python server.py
  4. 打开浏览器,按 F12 打开开发者工具,切换到控制台标签页,运行上述 JavaScript 代码测试 WebSocket 连接。
  5. 你会在控制台中看到连接建立的消息,服务器回应的消息,以及连接关闭的消息。

这段代码展示了如何使用 Tornado 搭建一个简单的 WebSocket 服务器,并处理 WebSocket 连接的打开、消息接收和关闭事件。这样的服务器可以用于需要实时数据传输的应用场景。


http://www.ppmy.cn/ops/130209.html

相关文章

2024年三个月自学进阶手册 网络安全(黑客技术)

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、…

【应急响应】Linux植入恶意程序排查流程

文章目录 前言一、Linux入侵检查二、Linux系统被入侵/中毒有哪些现象三、Linux系统被入侵/中毒处置过程四、Linux安全防护措施五、服务器被GetShell渗透解决办法(案例)前言 本篇文章主要是以我们日常的运维工作中对Linux服务器进行安全检查,进一步介绍如何使用具体命令来对Li…

CMFCMaskedEdit 类和CIPAddressCtrl 类

CMFCMaskedEdit 类支持掩码编辑控件,此控件利用掩码验证用户输入,并根据模板显示验证的结果。 CIPAddressCtrl 类提供 Windows 公共 IP 地址控件的功能 执行以下步骤,以便在应用程序中使用 CMFCMaskedEdit 控件: 将 CMFCMasked…

单片机串口和电脑串口连接

单片机串口和电脑串口连接: 先将MCU的TTL电平转换为RS232电平,才可以和电脑的串口DB9相连接。见下图所示: 翻看自己以前记录的笔记,真是初级到极点了。

厨艺爱好者的在线聚集地:Spring Boot实现

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Sprin…

Selenium的下载及chrome环境搭建

Selenium的下载及环境的搭建 1.安装python环境 conda 安装python环境《略》2.在CMD在使用pip下载Selenium pip install selenium #pip安装3.下载webdriver 进入Selenium的下载界面:https://www.selenium.dev/downloads/ 下拉找到Browsers 4、驱动与浏览器 ht…

新品上市!让核酸酶质量和残留控制像测定蛋白浓度一样简单

新品应运而生 非特异性核酸酶(以下简称“核酸酶”)广泛应用于生物制品生产过程中的宿主核酸残留(Host Cell DNA,以下简称“HCD”)控制。酶活性是核酸酶的主要性能指标,受温度、盐浓度和有效镁离子浓度等多…

基于用户体验的在线相册管理平台创新设计与实现

基于用户体验的在线相册管理平台创新设计与实现 摘要 随着互联网和智能设备的普及,照片数量剧增,传统相册管理方式难以满足需求,在线相册管理平台应运而生。本文对在线相册管理平台的设计与实现进行了深入研究。首先剖析了平台所采用的 B/S…