Tornado 提供了丰富的灵活输出生成方式,包括直接输出文本、模板渲染、JSON 数据返回等。以下是一些 Tornado 中常用的输出生成方法:

1. 直接输出文本

使用 write 方法可以直接将文本写入响应:
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, Tornado!")

2. 模板渲染

Tornado 使用模板引擎来生成动态内容。通过 render 或 render_string 方法可以渲染模板并将结果写入响应:
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        name = "Tornado"
        self.render("template.html", name=name)

在上述例子中,模板文件 template.html 中可以包含类似 {{ name }} 的占位符,Tornado 会将其替换为相应的值。

3. JSON 数据返回

如果你的应用需要返回 JSON 格式的数据,可以使用 write 方法结合 json 模块:
import json

class APIHandler(tornado.web.RequestHandler):
    def get(self):
        data = {"message": "Hello, Tornado!"}
        self.write(json.dumps(data))
        self.set_header("Content-Type", "application/json")

或者使用 write 方法的 json 方法:
class APIHandler(tornado.web.RequestHandler):
    def get(self):
        data = {"message": "Hello, Tornado!"}
        self.write(data)

4. 重定向

使用 redirect 方法可以进行重定向:
class RedirectHandler(tornado.web.RequestHandler):
    def get(self):
        self.redirect("http://www.example.com")

5. 静态文件

如果你需要提供静态文件(如图片、样式表、脚本等),Tornado 可以通过 StaticFileHandler 处理:
app = tornado.web.Application([
    (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': '/path/to/static/files'}),
])

上述配置会将 /static/ 路径下的请求映射到对应的静态文件。

这些方法可以根据具体的应用场景进行组合使用,使得 Tornado 应用可以满足各种输出需求。同时,Tornado 的异步特性也使得在处理大量并发请求时保持高效。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7425/Tornado