首先需要先思考你的网站需要建成什么样子。
比如我打算开一个博客,然后提供一些绘图的小工具,还有放一些个人介绍等,就暂时定义了以下几个类:
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="" />
然后后面就开始着手实现每个定义的类的功能。