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