Tornado是一个非阻塞的web服务器,也是python的web框架中非常优秀的一款。网上关于django的tutorial非常多而且详细,关于tornado的使用就非常少了,我想以我从0开始的方式一步一步用这个优秀的tornado框架建一个小网站,一方面加深自己的理解,另一方面接受大家的建议和批评,更加进步~我注册了个域名:http://www.ustchacker.com,由于服务器在学校里面,外网访问不了,等功能完善后再挂到外网去。
我想建的是一个普通的网站,有登录、注册、发表文章、发表评论、群聊等,还有的功能之后再完善,现在的这些功能以后还要改进。代码如下:
import os
import tornado.web
import tornado.ioloop
from handlers import *
handlers=[
(r'/',indexHandler),
(r'/member',memberHandler),
(r'/chat/(\d+)',chatHandler),
(r'/register',registerHandler),
(r'/logout',logoutHandler),
(r'/post',postHandler),
(r'/user/(\w+)',userHandler),
(r'/blog/(\d+)',blogHandler),
(r'/comment',commentHandler),
]
settings={
'static_path':os.path.join(os.path.dirname(__file__),'static'),
'template_path':os.path.join(os.path.dirname(__file__),'template'),
}
app=tornado.web.Application(handlers,**settings)
app.listen(8888)
tornado.ioloop.IOLoop.instance().start()
/ 对应首页;/member对应注册的成员列表;/chat/(\d+) 对应群聊的网页,\d+表示页数,因为群聊主题比较多加个分页比较好;/register对应注册;/logout对应登出;/post对应发表文章,/user/(\w+)对应每个注册用户的主页;/blog/(\d+)对应每一篇文章;/comment是发表评论用的。
在template目录下分别创建相应html文件:
blog.html index.html member.html register.html
chat.html main.html post.html user.html
还需要一个数据库,mongodb非常好用,但是出于方便简单考量,对于小站还是用sqlite3就OK了哈~对于数据库有很多ORM,目前小站功能简单,我就自己封装一下就好了。
前端框架使用bootstrap,在主模版main.html中如下:
<meta charset='utf-8'>
<html>
<head>
<title>USTC Hackers' Club</title>
<meta name='viewport' content='width=device-width,initial-scale=1.0'>
<link href='/static/bootstrap.css' rel='stylesheet' type='text/css'>
<script src='/static/jquery-2.1.1.js'></script>
<script src='/static/bootstrap.js'></script>
</head>
<body>
<header>
{%block header%}
{%end%}
</header>
<content>
{%block content%}
{%end%}
</content>
<footer>
{%block footer%}
{%end%}
</footer>
</body>
</html>
要加上bootstrap.css和bootstrap.js,由于bootstrap.js依赖jquery,因此jquery-2.1.1.js也是需要加进来的。之后会通过接下来的几篇文章不断完善和增加小站功能,并在过程中展现tornado的设计之美。
转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25532601