RequestHandler 类
RequestHandler 是 Tornado 中用于处理 HTTP 请求的基类。你可以创建自己的处理类,继承于 RequestHandler,然后重写其中的方法来处理不同的 HTTP 请求。以下是一些常用的 RequestHandler 方法:
- initialize(self, *args, **kwargs): 在处理请求之前进行初始化操作,可以通过这个方法传递参数给处理器。
- get(self, *args, **kwargs): 处理 HTTP GET 请求的方法。
- post(self, *args, **kwargs): 处理 HTTP POST 请求的方法。
- write(self, chunk): 向响应中写入内容。
- finish(self, chunk=None): 结束响应的写入。
- redirect(self, url, permanent=False, status=None): 重定向到指定的 URL。
- set_status(self, status_code, reason=None): 设置 HTTP 状态码。
- set_header(self, name, value): 设置响应头。
- get_argument(self, name, default=None, strip=True): 获取请求参数。
- get_cookie(self, name, default=None): 获取 cookie 值。
- set_cookie(self, name, value, domain=None, expires=None, path="/", expires_days=None, **kwargs): 设置 cookie。
这些方法提供了处理请求和生成响应的基本工具。你可以根据自己的需求重写这些方法,定制化你的请求处理逻辑。
Application 类
Application 类是 Tornado Web 应用的核心,它负责将请求路由到相应的 RequestHandler 处理器。以下是一些常用的 Application 类的方法和属性:
- Application(handlers=None, default_host="", transforms=None, **settings): 创建一个应用实例。
- add_handlers(self, host, handlers): 向应用中添加新的请求处理器。
- listen(self, port, address="", **kwargs): 监听指定的端口和地址。
- add_transform(self, transform): 向应用中添加一个变换器,用于修改请求或响应。
- settings: 一个字典,包含应用的配置项,例如模板路径、静态文件路径等。
- ui_modules 和 ui_methods: 用于注册 UI 模块和 UI 方法的属性。
- loader: 用于加载模板的对象。
通过配置 Application 对象,你可以定义应用的路由、设置以及其他参数。例如:
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, Tornado!")
def make_app():
return tornado.web.Application([
(r'/', MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
print("Server is running at http://localhost:8888")
tornado.ioloop.IOLoop.current().start()
在这个例子中,通过 make_app 函数创建了一个简单的应用,指定了根路径的处理器为 MainHandler。应用通过 app.listen(8888) 开启了监听端口为 8888 的服务。
总的来说,RequestHandler 处理具体的请求逻辑,而 Application 则负责管理整个应用的配置和路由。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7424/Tornado