Tornado官方文档(五)【tornado web应用框架】

本文介绍了Tornado Web框架的基本应用结构,包括RequestHandler、Application对象及其如何进行路由配置。通过一个简单的HelloWorld示例展示了如何创建Handler类、定义路由,并启动服务器。

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

Tornado web应用结构

一个Tornado web应用存在一个或者多个RequestHandler之类,一个Application对象(负责路由到特定Handler),和一个main函数来启动server。

一个最小化的HelloWolrd示例其代码如下:

    from tornado.ioloop import IOLoop
    from tornado.web import RequestHandler, Application, url

    class HelloHandler(RequestHandler):
        def get(self):
            self.write("Hello, world")

    def make_app():
        return Application([
            url(r"/", HelloHandler),
            ])

    def main():
        app = make_app()
        app.listen(8888)
        IOLoop.current().start()

Application对象

Application对象是可靠的全局配置,包括了路由表(映射所有的RequestHandler)。

路由表是一个URLSpec对象的数组,每一个对象都至少包含一个正则表达式和一个handler类。排序事项,第一匹配原则是被使用的。如果正则表达式包含捕获groups,这些groups是路径参数而且将传递给Handler的HTTP方法。如果一个字典传递作为URLSpec的第三个元素,它将提供初始化参数(这些参数将传递给RequestHandler.initialize)。最后,URLSpec有一个名称,这会被RequestHandler.reverse_url所使用。

例如,在如下不完整代码,根路径/将映射到MainHandler和 /story/(允许传递数量)将会映射到StoryHandler。数量将被作为字符串传递给StoryHandler.get。

    class MainHandler(RequestHandler):
        def get(self):
            self.write('<a href="%s">link to story 1</a>' %
                       self.reverse_url("story", "1"))

    class StoryHandler(RequestHandler):
        def initialize(self, db):
            self.db = db

        def get(self, story_id):
            self.write("this is story %s" % story_id)

    app = Application([
        url(r"/", MainHandler),
        url(r"/story/([0-9]+)", StoryHandler, dict(db=db), name="story")
        ])

Application构造函数需要传递许多关键参数,以便是用来自定义应用的行为以及启动可选的特性,查看Application.settings已了解更多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值