Tornado+Bootstrap 快速建站

0x01 Tornado

Tornado是一个用Python写的相对简单的、不设障碍的Web服务器架构,用以处理上万的同时的连接口,让实时的Web服务通畅起来。
1、完整的用以构建网站的基础模块。
Tornado包含内置的用以解决网络开发最难和最烦的功能模块,包括模板、signed cookies、用户认证、地方化(localization)、aggressive static file caching, cross-site request forgery protection,以及类似Facebook Connect的第三方认证。开发者可以随取所需,并且自由组合,甚至把Tornado与其他架构组合。
2、实时服务。
Tornado支持大量的同时发生的信息连接。用Tornado,能够通过HTTP或者Long Polling方便的书写实时服务。要知道,每一个FriendFeed的活跃用户都保持有一个连通FriendFeed服务器的开放通路。
3、高效能。
Tornado比大多数用Python写的Web架构更快。根据一些实验,Tornado的速度是一般架构的4倍。

pip install tornado  #安装tornado

Tornado内置了自己的HTTPServer,运行和部署它与其他Python web框架不太一样,需要写一个main()函数来启动服务。

def main():
  app = make_app()
  app.listen(8888)
  IOLoop.current().start()

if __name__ == '__main__':
  main()

这里简单的输出一下:

import tornado.ioloop  
import tornado.web  

class MainHandler(tornado.web.RequestHandler):  
    def get(self):  
        self.write("Hello, world")  

application = tornado.web.Application([  
    (r"/",MainHandler),  
])  

if __name__=="__main__":  
    application.listen(8888)  
    tornado.ioloop.IOLoop.instance().start() 

保存为hello.py,当我们运行hello.py时候,我们在浏览器输入127.0.0.1:8888,就可以访问到我们的Hello,world

0x02 Bootsharp

目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。

2.1、下载代码放入我们的源代码中 传送门,下载已编译的版本
2.2、使用CDN,推荐大家使用。

<!-- 新 Bootstrap 核心 CSS 文件 -->
<link href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

<!-- 可选的Bootstrap主题文件(一般不使用) -->
<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap-theme.min.css"></script>

<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>

国内推荐使用
国际推荐使用

0x03 jQuery

jQuery 是一个 JavaScript 库,极大地简化了 JavaScript编程。和Bootstrap类似,它也支持两种形式的安装。

1、可以在官网下载放入源码进行加载 传送门
2、使用CDN

百度:http://libs.baidu.com/jquery/1.10.2/jquery.min.js
新浪:http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js
Google:http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js

0x04 将三者结合起来

Linux下可以使用tree命令查看文件结构。
目录结构

-static      ##主要放置配置文件
    -css
    -js
    -fonts
    -img
-templates   ##主要放置页面
    index.html
    blog.html


static目录存放了我们下载的bootsharp的所有文件,下载的jquery.min.js文件也放入对应的js中。
总的来说,他的目录结构也相对简单,很好理解。

最主要的的是编写后端的tornado代码

import os.path

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)

class LoginHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('login.html')

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application([(r"/login",LoginHandler)],
        template_path = os.path.join(os.path.dirname(__file__),"templates"),
        static_path =os.path.join(os.path.dirname(__file__), "static"),
        debug = True                                       
          )   
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

接下来就是前端的index.thml和login.html的编写
在这里需要注意的是由于我们把tornado、bootstrap放到了本地,所以我们采用第一种本地加载的方式,例如:

加载css:
<link rel="stylesheet" href="{{ static_url("css/bootstrap.min.css") }}">
加载js:
<script src="{{ static_url("js/bootstrap.min.js") }}"></script>

而如果使用CDN的话:

加载css:
 <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"> 
加载js:
<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>

推荐大家使用CDN的方式去加载。

这样一个简单地页面就呈现了出来,是不是挺简单啊。其他的网站搭建差不多也是同理。

这里只是简单的介绍了Tornado、Bootsharp、jQuery相互结合快速建站的思路,至于那些js、css等的语法这里并没有过多的介绍,大家下去可以仔细去了解,推荐搭建菜鸟教程挺不错的。