Tornado是一个非堵塞的webserver,也是python的web框架中很优秀的一款。网上关于django的tutorial许多并且具体,关于tornado的使用就很少了。我想以我从0開始的方式一步一步用这个优秀的tornado框架建一个小站点。一方面加深自己的理解。还有一方面接受大家的建议和批评。更加进步~我注冊了个域名:http://www.ustchacker.com,因为server在学校里面。外网訪问不了,等功能完好后再挂到外网去。

我想建的是一个普通的站点,有登录、注冊、发表文章、发表评论、群聊等,还有的功能之后再完好,如今的这些功能以后还要改进。

代码例如以下:

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

【从0開始Tornado建站】整体设计的更多相关文章

  1. 【从0開始Tornado建站】0.9版本号python站点代码开源--持续更新中

            从5月份開始[从0開始Tornado建站]这个专栏,開始一点一点把这个分类兴趣站点弄起来,从无到有的过程也是令人兴奋的:-) 国庆的时候等待备案然后上线,如今站点域名为ustchack ...

  2. 【从0開始Tornado建站】群聊

    群聊的前台主要代码: {%block content%} <!--<p class='text-success h3'>測试版本号,每天凌晨4:00清水,enjoy it~~:-)& ...

  3. 【从0開始Tornado建站】发表文章和评论

            先上个效果图: 这是每一个用户的主页.由于是基本功能.所以用户头像.爱好等信息都还没有,在下一阶段加上.右側"发表新文章"按钮点击后进入发表文章的页面: 之前尝试过 ...

  4. 【从0開始Tornado建站】显示全部注冊用户

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/littlethunder/article/details/25559749         显示注冊 ...

  5. 从0開始写MyScrollView

    从0開始写MyScrollView 上篇文章对ScrollView的详细实现进行了分析.本文依据上篇分析的结果.自己动手写一个ScrollView. step1 尾随手指滑动,非常easy.重写2个函 ...

  6. 从0開始学习 GitHub 系列之「07.GitHub 常见的几种操作」

    之前写了一个 GitHub 系列,反响非常不错,突然发现居然还落下点东西没写,前段时间 GitHub 也改版了,借此机会补充下. 我们都说开源社区最大的魅力是人人多能够參与进去,发挥众人的力量,让一个 ...

  7. 从今天開始学习iOS开发(iOS 7版)--实现一款App之Foundation框架的使用

    iOSFoundation框架 当你着手为你的应用编写代码的时候,你会发现有很多可供使用的Objective-C的框架类,当中尤其重要的就是基础框架类.它为平台全部的应用提供基础服务.基础框架类中包括 ...

  8. 《玩转Django2.0》读书笔记-Django建站基础

    <玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...

  9. 【Bootstrap3.0建站笔记一】表单元素排版

    1.文字和输入框前后排列: 代码: <div class="row"> <div class="col-lg-12"> <div ...

随机推荐

  1. django web 笔记

    安装 django  pip install django 创建虚拟环境  python -m venv  testenvironment 进入虚拟环境: testenvironment\Script ...

  2. 使用matlab处理图像的基础知识

    MATLAB基本函数一 矩阵运算 1.基本算数运算(加减乘除) + -运算要求矩阵维数相同,例m*n * /运算,例A=B*C,B矩阵是m*n矩阵,B是n*p矩阵,则A是m*p矩阵 A/B相当于A*i ...

  3. python3 functools partial 用于函数的包装器详解

    一.partial 的作用: partial 用于对一个已有函数进行包装,达到功能的定制的目的. 二.例子: 假设我们要完成两个功能,第一个功能是完成两个数相加,第二个功能是给一个自增一下 1.传统方 ...

  4. BZOJ 1029 JSOI2007 建筑抢修 贪心+堆

    题目大意:n个建筑须要抢修.第i个建筑须要T1时间抢修.必须在T2时间之前抢修完成.求最多能抢修多少建筑 首先我们对T2排序 然后依次修理 可是这样贪心显然是不对的 比方说这组数据: 5 10 10 ...

  5. asp.net用三层实现多条件检索

    众所周知,三层将项目分为界面层,业务逻辑层和数据訪问层(以最主要的三层为例) 相同都知道,多条件检索事实上就是依据用户选择的条件项,然后来拼sql语句 那么.既然要依据用户选择的条件项来拼sql语句, ...

  6. posix多线程--线程取消

    1.三种取消状态Off                   禁用取消Deferred           推迟取消:在下一个取消点执行取消Asynchronous   异步取消:可以随时执行取消 in ...

  7. csdn能不靠点谱啊

    以前的时候在csdn上有一个博客,那时经常出错,所以就不用了,后来在百度上开了个博客,后以空间升级了,升级之后,那叫一个垃圾,不用了,现在返回头来再用csdn,刚开始两天还好,没用两天又不行了,想在上 ...

  8. 《SPARK/TACHYON:基于内存的分布式存储系统》-史鸣飞(英特尔亚太研发有限公司大数据软件部工程师)

    史鸣飞:大家好,我是叫史鸣飞,来自英特尔公司,接下来我向大家介绍一下Tachyon.我事先想了解一下大家有没有听说过Tachyon,或者是对Tachyon有没有一些了解?对Spark呢? 首先做一个介 ...

  9. 让input变成不可编辑状态的方法

    有时候,我们希望表单中的文本框是只读的,让用户不能修改其中的信息,如使<input type="text" name="input1" value=&qu ...

  10. timeout的作用

    废话: 刚才刚才看视屏有一点没看懂,timeout的作用. 得出的结果: setTimeout(‘test()’,1000); 第一个参数要调用的函数名,第二个参数是延时的时间.时间到达以后调用tes ...