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等的语法这里并没有过多的介绍,大家下去可以仔细去了解,推荐搭建菜鸟教程挺不错的。