一、tornado web程序编写思路

1. 创建web应用实例对象,第一个初始化参数为路由映射列表
2. 定义实现路由映射列表中的handler类
3. 创建服务器实例, 绑定服务器端口
4. 启动当前线程的IOLoop

二、tornado.web

1.RequestHandler:
封装了对应一个请求的所有信息和方法,write(响应信息)就是写响应信息的一个方法;对应每一种http请求方式(get、post等),把对应的处理逻辑写进同名的函数名方法里面(如对应get请求方式,就将对应的处理逻辑写在get()方法中),当没有对应请求方式的成员方法时,会返回“405: Method Not Allowed”错误。

2.Application:

tarnado web框架的核心应用类,是与服务器对接的接口,里面保存了路由信息表,里面保存了路由信息表,其初始化接收的第一个参数就是一个路由信息映射元组的列表;其listen(端口)方法用来创建一个http服务器实例,并绑定到给的端口(注意:此时服务器并未开启监听)

3.tornado.ioloop

(1)tornado的核心io循环模块,封装了linux的epoll和BSD的kqueue,tornado高性能的基石

(2)epoll原理

(3)IOLoop.current():   返回当前线程的IOLoop实例。

(4)IOLoop.start(): 启动IOLoop实例的IO循环,同时服务器监听被打开。

4.tornado.httpserver

实例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Irving# 一个简单的tornado web# 引用对应的tornado包
from tornado.web import Application, RequestHandler
from tornado.ioloop import IOLoop
from tornado.httpserver import HTTPServerclass IndexHandler(RequestHandler):def get(self):self.write("hello world!")if __name__ == '__main__':# 创建一个app应用app = Application([('/', IndexHandler)])# applisten('8000')# 为应用创建一个http服务http_server = HTTPServer(app)# 绑定对应的端口号http_server.listen(8000)# 开启多个tornado进程# http_server.bind(8000)# http_server.start(4)IOLoop.current().start()

5.tornado.options 

(1)tornado.options模块 -- 全局参数定义、存储、转换

(2)tornado.options.define()

  1. def define(name, default=None, type=None, help=None, metavar=None, multiple=False, group=None,  callback=None)

  2. name 选项变量名,须保证全局唯一性,否则会报“Option 'xxx' already defined in ...”的错误

  3. default 选项变量的默认值,如不传默认为None

  4. type 选项变量的类型,转换不成功时会报错,可以是str、float、int、datetime、timedelta中的某个,若未设置则根据default的值自动推断,若default也未设置,那么不再进行转换。可以通过利用设置type类型字段来过滤不正确的输入。

  5. multiple 选项变量的值是否可以为多个,布尔类型,默认值为False,如果multiple为True,那么设置选项变量时值与值之间用英文逗号分隔,而选项变量则是一个list列表(若默认值和输入均未设置,则为空列表[])。

  6. help 选项变量的帮助提示信息,在命令行启动tornado时,--help 可以查看所有选项变量的信息(注意,代码中需要加入tornado.options.parse_command_line())。

(3)tornado.options.options
  全局options对象,所有定义的选项变量都会作为该对象的属性

(4)tornado.options.parse_command_line()

  进行初始化

(5)tornado.options.parse_config_file(path)

(5)实例

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Irving# 一个简单的tornado web# 引用对应的tornado包
from tornado.web import Application, RequestHandler
from tornado.ioloop import IOLoop
from tornado.httpserver import HTTPServer
import tornado.optionstornado.options.define("port", type=int, default=8000, help="端口号")class IndexHandler(RequestHandler):def get(self):self.write("hello world!")if __name__ == '__main__':tornado.options.parse_command_line()# 创建一个app应用app = Application([('/', IndexHandler)])# applisten('8000')# 为应用创建一个http服务http_server = HTTPServer(app)# 绑定对应的端口号http_server.listen(tornado.options.options.port)# 开启多个tornado进程# http_server.bind(8000)# http_server.start(4)IOLoop.current().start()

转载于:https://www.cnblogs.com/Xuuuuuu/p/11173569.html

tornado基本使用一相关推荐

  1. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  2. python中tornado的第一个例子

    python中tornado的第一个例子 1  先安装tornado pip install tornado 2 新建tor.py 记住不能建立 tornado.py 这样的名字  不然会报错 Imp ...

  3. tornado+nginx上传视频文件

    [http://arloz.me/tornado/2014/06/27/uploadvideotornado.html] [NGINX REFRER: Nginx upload module] 由于t ...

  4. tornado源码分析

    tornado源码分析 本源码为tornado1.0版本 源码附带例子helloworld import tornado.httpserver import tornado.ioloop import ...

  5. Tornado自定义分布式session框架

    Tornado自定义分布式session框架 一.session框架处理请求执行的流程: 1.服务器端生成随机的cookie字符串 2.浏览器发送请求,服务器将cookie返回给浏览器. 3.服务器在 ...

  6. tornado 入门

    Overview FriendFeed是一款使用 Python 编写的,相对简单的 非阻塞式 Web 服务器.其应用程序使用的 Web 框架看起来有些像 web.py 或者 Google 的 weba ...

  7. python web项目案例教程_Python Web开发案例教程(慕课版)——使用Flask、Tornado、Django...

    第1章 Web开发基础1 1.1 Web概述 2 1.1.1 什么是Web 2 1.1.2 Web应用程序的工作原理 2 1.1.3 Web的发展历程 2 1.2 Web前端开发基础 4 1.2.1 ...

  8. sae python连接mysql_SAE Tornado 应用连接并使用 Mysql

    今天因为要提供几个开放的接口给我毕设相关的平台调用,所以又开始折腾之前在SAE上搭的Tornado应用. 之前记录过一个 如何在 SAE 上使用 Tornado,这次续上,关于在SAE里使用Torna ...

  9. tornado 09 cookie和session

    tornado 09 cookie和session 一.cookie #有什么办法能够让浏览器记住登录信息,下次再打开的时候可以自动登录?网站是如何记录登录信息的? class SetCookieHa ...

  10. python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...

最新文章

  1. opencv打开摄像头采集和保存
  2. 【九度OJ1518】|【剑指offer16】反转链表
  3. JavaScript的运动 —— 缓冲运动及其应用篇
  4. python定时发送邮件
  5. Ehcache介绍及整合Spring实现高速缓存
  6. 【CCF】20180902-买菜
  7. gitlab ProjectMembers
  8. unity 插件 color picker htc手柄控制,扣动扳机生成三维点线
  9. 修改表和约束(alter语句)
  10. SSM+家装管理系统 毕业设计-附源码191452
  11. WordPress主题精美写真图片图集网站源码
  12. 服务器虚拟机怎么安装win7系统教程,虚拟机怎么安装系统?VMware虚拟机安装Win7和win10图文详细教程...
  13. JSCORE03(达)
  14. Python穷举法连接WiFi
  15. 音视频技术开发周刊 | 177
  16. 京东自营售前客服考试
  17. VM设置Ubuntu窗口自适应大小
  18. mybatis动态指定表名注意点
  19. 【PTA】藏头诗:输入四句古诗,输出每句诗的第一个字。
  20. 四、项目计划(华为项目管理法-孙科炎读书摘要)

热门文章

  1. 使用inetaddress测试目标可达性_纯java手写打造方法级白盒测试框架
  2. python毕业设计总结范文大全_毕业设计心得体会范文【优秀】
  3. 人工神经网络_人工神经网络实践
  4. Vue最全知识点,面试必备(基础到进阶,覆盖vue3.0,持续更新整理,欢迎补充讨论)
  5. java downloadfile_FileDownload.java:文件下载工具类
  6. php gdb strace抓包,gdb,strace那些不常用的功能
  7. wxhtmltopdf 图片路径问题_图片引入路径问题
  8. kibana创建索引_ELK 索引生命周期管理
  9. 联想服务器自动关机_IBM 联想 DELL HP服务器自动关机|解决办法整理
  10. matlab 并行 计时,用Zen2跑MATLAB R2020a并行计算负载有点奇怪 - 桌面电脑(Computer)版 - 北大未名BBS...