当前位置: 首页 > 工具软件 > Tornado > 使用案例 >

【tornado建站】tornado框架搭建

杜经艺
2023-12-01

【tornado建站】tornado框架搭建

首先需要先思考你的网站需要建成什么样子。

比如我打算开一个博客,然后提供一些绘图的小工具,还有放一些个人介绍等,就暂时定义了以下几个类:

import tornado.ioloop
import tornado.web
from tornado.options import define, options


class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
            (r"/", IndexHandler),
            (r"/index", IndexHandler),
            (r"/blog/(.*)", PageHandler),
            (r"/entry/(.*)", EntryHandler),
            (r"/tool/(.*)", ToolHandler),
            (r"/query", SearchHandler),
            (r"/query/(.*)", SearchHandler),
            (r"/touch", TouchHandler),
        ]
        settings = dict(
            template_path=os.path.join(os.path.dirname(__file__), "templates"),
            static_path=os.path.join(os.path.dirname(__file__), "static"),
            debug=True,
            )
        tornado.web.Application.__init__(self, handlers, **settings)


class IndexHandler(tornado.web.RequestHandler):
    # 主页面
    def get(self):
        self.render('index.html')

class TouchHandler(tornado.web.RequestHandler):
    # 联系方式
    def get(self):
        self.render('touch.html')

class SearchHandler(tornado.web.RequestHandler):
    # 搜索
    def get(self):
        pass

    def post(self):
        pass


class PageHandler(tornado.web.RequestHandler):
    # 实现博客分页
    def get(self, page_index):
	    self.render('blog_title.html')

	
class EntryHandler(tornado.web.RequestHandler):
    # 处理每一篇博客
    def get(self, entry_index):
        self.render('blog.html')


class ToolHandler(tornado.web.RequestHandler):
    # 绘图的小工具
    def get(self):
        self.render('tool.html')

    def post(self):
        pass

主页面和联系方式都是单独的页面,所以这两个类并不需要修改代码了,但是我们需要先将html中连接到下一个页面的地址定义好。

比如主页的链接

<a href="/index"><h3>主页</h3></a>

联系方式的链接

<a href="/touch"><h3>联系我</h3></a>

js、css图片等的地址也需要写成tornado形式

<script src="{{ static_url("assets/js/main.js") }}"></script>
<img src="{{ static_url("images/welcome.png") }}" alt="" />

然后后面就开始着手实现每个定义的类的功能。

 类似资料: