2.python web框架tornodo之正则路由、分页和二级路由设置、模板语言extends、include

发布时间 2023-04-06 06:16:36作者: 少壮不努力123
一、tornado基于正则路由
1.controllers文件夹下home.py文件代码如下:
import tornado.web
import tornado.ioloop


class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("index.html")

#正则路由Handler
class ZhengZeRouteHandler(tornado.web.RequestHandler):
    #get方法,接收两个参数,根据不同的参数返回不同的页面
    def get(self, num, id):
        if num == "1":
            if id == "1":
                self.render("index.html")
            else:
                self.render("fenYe.html")
        else:
            self.render("zhengZe.html")
View Code
2.controllers文件夹下account.py文件代码如下:
import tornado.web
import tornado.ioloop
import home
import os

template_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "views")


settings = {
    "template_path": template_path,
    "static_path": "statics",
}


app = tornado.web.Application([
    #基本路由
    (r"/index", home.IndexHandler),
    #基于正则路由
    (r"/zhengze/(?P<num>\d*)/(?P<id>\d*)", home.ZhengZeRouteHandler),
], **settings)


if __name__ == "__main__":
    app.listen(8090)
    tornado.ioloop.IOLoop.instance().start()
View Code
3.views文件夹下index.html文件代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input type="text" name="userName">
    <input type="text" name="pwd">
</body>
</html>
index.html

4.views文件夹下fenYe.html文件代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1>这个正则路由的分页页面</h1>
</body>
</html>
View Code
5.views文件夹下zhengZe.html文件代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1 style="color: darkred;background-color: aliceblue">这是正则路由的正则页面</h1>
</body>
</html>
View Code

6.运行controllers文件夹下account.py文件,再浏览器中输入http://127.0.0.1:8090/zhengze/1/1即可路由访问index.html页面;输入http://127.0.0.1:8090/zhengze/1/2即可路由访问fenYe.html页面;输入http://127.0.0.1:8090/zhengze/2/1即可路由访问zhengZe.html页面