tornado开发学习之1.HelloWorld和它加强版版本
2013-04-01 08:33
316 查看
1. 本来web.py是一直在使用的,由于要搭建本站的原因,开始了tornado的学习。tornado是大名鼎鼎的,不用我来多说,以此篇开张来记录我学习tornado的过程
2. 先来介绍一下我的软件环境
activepython 2.7pypm install tornado
pypm install python-mysql
pypm install memcached
pypm install markdown
pypm install dbutils
pypm install mako
代码编辑器使用的是pycharm2.5
3. 一个标准的helloworld
从tornado的文档上都可以找到,我简单来解释一下各个部分的作用。
对于地址映射,使用Handlers数组来定义,每个元素是元组,特别注意的是结尾的,号
对于处理地址的类,都是继承与tornado.web.RequestHandler这个基类
下面声明appication,然后指定监听端口
再由著名的IOLoop启动消息循环
代码
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") Handlers=[ (r"/", MainHandler), ] application = tornado.web.Application(Handlers) if __name__ == "__main__": application.listen(8888) tornado.ioloop.IOLoop.instance().start()
4.下面让我们来简单加强一下
为什么加强,加强什么?在这个例子很简单演示了tornado的运行基本机制后,你会发现,你每次访问http://127.0.0.1:8888/都会得到HelloWorld,满足了么?看看运行环境的控制台,你会得到一串儿的哦,它还想要个站点图标,我们要让helloworld不要有缺憾,改写一下一上的HellorWorld
import os import tornado.ioloop import tornado.web def read(name): f = None try: file="%s/%s"%(os.path.dirname(__file__),name) f = open(file, 'rb') return f.read() except: return '' finally: if f: f.close() class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") class ImgHandler(tornado.web.RequestHandler): def get(self): ico=read("favicon.ico") self.write(ico) Handlers=[ (r"/", MainHandler), (r"/favicon.ico", ImgHandler),#增加了图标地址的处理 ] application = tornado.web.Application(Handlers) if __name__ == "__main__": application.listen(8888) tornado.ioloop.IOLoop.instance().start()
5. 简单解释一下上面的代码
我们增加了一个read函数,用来读取文件,很好理解,就是以二进制只读模式来读取文件我们在地址映射时当系统想访问/favicon.ico时,交给ImgHandler处理
ImgHandler的作用就是把存放在与helloworld同级目录下的favicon.ico使用read函数读取出来然后回写给浏览器,相当于直接给浏览器一个图标文件(估计有人会说,你不知道有静态目录么?对不起,目前我只知道helloworld)
OK,让我们来看看加强版本的tornado的helloworld吧。怎么样漂亮吧。控制台也没有WARNING了。
【原创转载】http://www.youliaoo.com/post/12
相关文章推荐
- tornado开发学习之1.HelloWorld和它加强版版本
- tornado开发学习之1.HelloWorld和它加强版版本
- 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 对外不要提供Delete方法加强软件的安全性
- 加强金融专业知识学习,现实从代码开发到业务设计的转型
- Tensorflow实战学习(四十六)【TensoFlow开发环境,Mac,Ubuntu,Linux,Windows,CPU版本】
- 敏捷开发系列学习总结(1)——版本管理发布流程
- Android开发学习总结(一)——搭建最新版本的Android开发环境
- 敏捷开发系列学习总结(1)——版本管理发布流程
- (转载)游戏开发完整学习路线(各个版本都有)
- tornado开发学习之2.输入输出,数据库操作,内置模板,综合示例
- Android开发学习总结(一)——搭建最新版本的Android开发环境
- IOS 开发学习37 的Architecture与iphone版本对应关系
- python开发学习-day01 (python安装与版本、字符串、字典、运算符、文件)
- tornado开发学习之2.输入输出,数据库操作,内置模板,综合示例