总结

其实刚才三种框架的演示都是实现同一种功能:路由传入参数
这里想说明的原理是,一个网站的,不同页面的内容是由路由控制的。
不同的路由指向不同的内容。当然也可以多个路由指定一种方法。
而传入的参数可以用作索引
例如,现在你有一个数据库。
你可以通过路由传入的参数作为索引数据库来索引出内容。
当然,这个假设是说这个索引是数据库某个字段的id值。

例子

新建一个名为books,py的文件

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):

        context = "Hello, world"
        #self.write(context)
        self.render(template_name='hello.html')


class BookHandler(tornado.web.RequestHandler):
    def get(self,book):
        books = {
            'python':{'price':'45.00'},
            'ruby':{'price':'36.00'},
            'javascript':{'price':'40.00'},
        }
        context = books[book]
        #self.write(context)
        self.render(template_name='book.html',context=context)

if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler),
        (r'/(?P<book>[\w-]+)',BookHandler),
    ])
    application.listen(8888)
    tornado.ioloop.IOLoop.current().start()

新建一个book.html文件

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title>{{ context }}</title>
    </head>
    <body>
        <p>价格:{{ context['price'] }}</p>
    </body>
</html>

运行books.py后。
在浏览器输入http://127.0.0.1:8888/python
或者http://127.0.0.1:8888/ruby
看一下效果。

results matching ""

    No results matching ""