python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Tornado Application

Tornado Application的实现

作者:G_SANGSK

本文主要介绍了Tornado Application的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Application

-settings

我们在创建tornado.web.Application的对象时,传入了第一个参数——路由映射列表。实际上Application类的构造函数还接收很多关于tornado web应用的配置参数。

我们先来看一个参数:

debug,设置tornado是否工作在调试模式,默认为False即工作在生产模式。当设置debug=True 后,tornado会工作在调试/开发模式,在此种模式下,tornado为方便我们开发而提供了几种特性:

使用debug参数的方法:

import tornado.web
app = tornado.web.Application([], debug=True)

-路由映射

先前我们在构建路由映射列表的时候,使用的是二元元组,如:

[(r"/", IndexHandler),]

对于这个映射列表中的路由,实际上还可以传入多个信息,如:

[
    (r"/", Indexhandler),
    (r"/cpp", ItcastHandler, {"subject":"c++"}),
    url(r"/python", ItcastHandler, {"subject":"python"}, name="python_url")
]

对于路由中的字典,会传入到对应的RequestHandler的initialize()方法中:

from tornado.web import RequestHandler
class ItcastHandler(RequestHandler):
    def initialize(self, subject):
        self.subject = subject
    def get(self):
        self.write(self.subject)

对于路由中的name字段,注意此时不能再使用元组,而应使用tornado.web.url来构建。name是给该路由起一个名字,可以通过调用RequestHandler.reverse_url(name)来获取该名子对应的url。

# coding:utf-8
import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options
from tornado.options import options, define
from tornado.web import url, RequestHandler
define("port", default=8000, type=int, help="run server on the given port.")
class IndexHandler(RequestHandler):
    def get(self):
        python_url = self.reverse_url("python_url")
        self.write('<a href="%s" rel="external nofollow" >itcast</a>' %
                   python_url)
class ItcastHandler(RequestHandler):
    def initialize(self, subject):
        self.subject = subject
    def get(self):
        self.write(self.subject)
if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application([
            (r"/", Indexhandler),
            (r"/cpp", ItcastHandler, {"subject":"c++"}),
            url(r"/python", ItcastHandler, {"subject":"python"}, name="python_url")
        ],
        debug = True)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.current().start()

到此这篇关于Tornado Application的实现的文章就介绍到这了,更多相关Tornado Application内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文