tornado基本使用一
一、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基本使用一相关推荐
- python tornado教程_Tornado 简单入门教程(零)——准备工作
前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...
- python中tornado的第一个例子
python中tornado的第一个例子 1 先安装tornado pip install tornado 2 新建tor.py 记住不能建立 tornado.py 这样的名字 不然会报错 Imp ...
- tornado+nginx上传视频文件
[http://arloz.me/tornado/2014/06/27/uploadvideotornado.html] [NGINX REFRER: Nginx upload module] 由于t ...
- tornado源码分析
tornado源码分析 本源码为tornado1.0版本 源码附带例子helloworld import tornado.httpserver import tornado.ioloop import ...
- Tornado自定义分布式session框架
Tornado自定义分布式session框架 一.session框架处理请求执行的流程: 1.服务器端生成随机的cookie字符串 2.浏览器发送请求,服务器将cookie返回给浏览器. 3.服务器在 ...
- tornado 入门
Overview FriendFeed是一款使用 Python 编写的,相对简单的 非阻塞式 Web 服务器.其应用程序使用的 Web 框架看起来有些像 web.py 或者 Google 的 weba ...
- 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 ...
- sae python连接mysql_SAE Tornado 应用连接并使用 Mysql
今天因为要提供几个开放的接口给我毕设相关的平台调用,所以又开始折腾之前在SAE上搭的Tornado应用. 之前记录过一个 如何在 SAE 上使用 Tornado,这次续上,关于在SAE里使用Torna ...
- tornado 09 cookie和session
tornado 09 cookie和session 一.cookie #有什么办法能够让浏览器记住登录信息,下次再打开的时候可以自动登录?网站是如何记录登录信息的? class SetCookieHa ...
- python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理
Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...
最新文章
- opencv打开摄像头采集和保存
- 【九度OJ1518】|【剑指offer16】反转链表
- JavaScript的运动 —— 缓冲运动及其应用篇
- python定时发送邮件
- Ehcache介绍及整合Spring实现高速缓存
- 【CCF】20180902-买菜
- gitlab ProjectMembers
- unity 插件 color picker htc手柄控制,扣动扳机生成三维点线
- 修改表和约束(alter语句)
- SSM+家装管理系统 毕业设计-附源码191452
- WordPress主题精美写真图片图集网站源码
- 服务器虚拟机怎么安装win7系统教程,虚拟机怎么安装系统?VMware虚拟机安装Win7和win10图文详细教程...
- JSCORE03(达)
- Python穷举法连接WiFi
- 音视频技术开发周刊 | 177
- 京东自营售前客服考试
- VM设置Ubuntu窗口自适应大小
- mybatis动态指定表名注意点
- 【PTA】藏头诗:输入四句古诗,输出每句诗的第一个字。
- 四、项目计划(华为项目管理法-孙科炎读书摘要)
热门文章
- 使用inetaddress测试目标可达性_纯java手写打造方法级白盒测试框架
- python毕业设计总结范文大全_毕业设计心得体会范文【优秀】
- 人工神经网络_人工神经网络实践
- Vue最全知识点,面试必备(基础到进阶,覆盖vue3.0,持续更新整理,欢迎补充讨论)
- java downloadfile_FileDownload.java:文件下载工具类
- php gdb strace抓包,gdb,strace那些不常用的功能
- wxhtmltopdf 图片路径问题_图片引入路径问题
- kibana创建索引_ELK 索引生命周期管理
- 联想服务器自动关机_IBM 联想 DELL HP服务器自动关机|解决办法整理
- matlab 并行 计时,用Zen2跑MATLAB R2020a并行计算负载有点奇怪 - 桌面电脑(Computer)版 - 北大未名BBS...