tornado框架基础01-路由简介
tornado 小而精 Django 大而全
Web框架 Tornado是一个由Python开发的Web框架
Web服务 利用Tornado,可以快速搭建和一个高性能的Web服务
非阻塞 Tornado是单线程异步的非阻塞服务器,因此速度非常快,相对一般情况下来说,如果同时连接数Django为3000个左右,那么Tornado为10000个
易于学习 Tornado的学习成本非常低,是个非常容易学习使用的Web框架
Tornado的安装
pip install tornado
import tornado.ioloop #基于epoll的循环.
import tornado.web #web框架的核心模块
import tornado.httpserver
from tornado.options import define,options
define('port',default = 8080,help = 'run port', type = int)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write('hello this is my first WebWerver')
class IndexHandler():
application = tornado.web.Application(
[
(r'/',MainHandler), #数据以元组存放.
('/index',IndexHandler)
#用来存放路径的
]
) #基于核心模块下面的类的实例化,是服务器进行调用的接口.web框架的应用核心.
if __name__ = '__main__':
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(options.port) #绑定操作
tornado.ioloop.IOloop.current().start() #,询问epoll的一个循环.开启服务器.访问不同路径,返回不同的资源.
路由
get_arguments() ?key=value
简单的例子
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler): #继承底层封装内容.
def get(self):
self.write("hello,this is my first webserver")
application = tornado.web.Application([ #应用的核心
(r"/",MainHandler), #定义路径及Handler
])
if __name__ == "__main__":
application.listen(8080)
tornado.ioloop.IOLoop.current().start()
tornado.ioloop #开启循环,让服务一直等待请求的到来
tornado.web #web框架核心模块,服务基本功能都封装在此模块中
路由表
application = tornado.web.Application([
(r"/",MainHandler),
])
客户端访问服务器可以看成是:客户端读取服务器资源的一个过程,路由表就指定了具体访问什么资源
在 Tornado 中,路由表通过如上方式定义
路由表是访问服务器的入口,在工作中如果有新的需求,往往只需要在路由表中添加新的路由即可
Handler
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("hello ")
在这里指定请求的资源 ,
启动Tornado
导入
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
Handler
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.write('hello')
路由
if __name__ == '__main__':
tornado.options.parse_command_line() #打印请求信息.
app = tornado.web.Application(
handlers=[
(r'/',IndexHandler),
]
)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.current().start()
命令行交互 使用命令行来控制启动
Tornado 支持通过命令行参数来控制 Tornado 的启动形式
代码
define('port', default=8080, help='run port', type=int)
define('version', default='0.0.1', help='version 0.0.1', type=str)
#通过这个来设置动态指定端口.
在命令行中输入:python tor.py --port=8888
使用
python test.py --port=8000
python test.py --version=1.0
python test.py --help
输入和输出
输入:
class TestIndexHandler(tornado.web.RequestHandler):
def get(self):
name = self.get_argument('name', 'no') #指定key,value
self.write('hello '+name)
print(name)
name = self.get_arguments('name')
self.write(' ')
self.write(','.join(name))
print(name)
使用:http://127.0.0.1:8000/test?name=budong #key=value&key=value形式.
? 后面便是参数
可以通过: get_argument 和 get_arguments 来获取参数值
输出:
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.write('abc')
从 Tornado 输出到浏览器我们可以使用 write
tornado框架基础01-路由简介的更多相关文章
- 框架基础之Hibernate简介
框架基础之Hibernate简介 1.什么是Hibernate? Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得程序员可以随心所欲地使用对象编程思维来 ...
- tornado框架基础10-websocket
websocket 01 长轮询 在网页,我们经常扫码登录,结合之前的学习的知识点,来思考下,前端是如何知道用户在手机上扫码登录了呢? 长轮询:客户端不断的向服务器发送请求 缺点: \1. 开销大 \ ...
- Flask基础-01.Flask简介
Flask简介 Web应用程序作用 Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档. 关于Web框架 1. 什么是Web框架? 1. 已经封装好了一段代码,协助程序 ...
- tornado框架基础11-tornado异步
01 同步和异步 生活中常常会遇到在超市排队买东西的情况,排在你前面的人没有结算完成,你就无法付账,在计算机中也有类似的情形,一个程序在执行之前,需要等待其他的程序执行完成,大家还能举出其他的例子吗? ...
- tornado框架基础09-cookie和session
01 cookie 在上节,我们简单了解了登录过程,但是很明显,每次都需要登录,但是在平常逛网站的只需要登录一次,那么网站是如何记录登录信息的呢? 有没有什么办法可以让浏览器记住登录信息,下次再次打开 ...
- tornado框架基础04-模板基础
01 模板 模板演示 配置路径 在 application 中配置模板文件和静态文件的路径: template_path='templates', static_path='static', 模板 & ...
- tornado框架基础03-请求与响应
01 请求与响应 请求 浏览器在发送请求的时候,会发送具体的请求信息,由请求行,请求消息头,请求正文 请求消息头 向服务器传递附加信息 Accept: 浏览器可以接受的MIME类型. Accept-C ...
- tornado框架基础02-输入和输出
01 输出 write bytes类型 class IndexHandler(tornado.web.RequestHandler): def get(self): self.write(b'Torn ...
- Django框架——基础之路由系统(urls.py)
1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...
随机推荐
- 浅谈欧拉函数 By cellur925
1.某神犇Blog 学了三遍的 欧拉函数φ--DEADFISH7 2.我要做一些补充o(* ̄▽ ̄*)o $φ(1)=1$: 公式有两种形式,一种有太多除法,实际可能会慢些.通用 对于任意$n$> ...
- 密码(Password)
#include<cstdio> #include<cstring> using namespace std; int k, cnt; ][][], ans[]; bool d ...
- shell getopts
1, 分类: LINUX getopts命令内置于shell中,可以获取由单个字符所指定的有效命令行参数,单个字符有一个‘ - ’号或‘ + ’号. 简单的说,比如运行命令: iptables -t ...
- 简单了解Linux中 du 和 df 以及它们的区别
一 .du : 显示每个文件和目录的磁盘使用空间~~~文件的大小. 命令参数: -a #显示目录中文件的大小 单位 KB . -b #显示目录中文件的大小,以字节byte为单位. -c #显 ...
- (027)[技术资料]业余制作Windows图标
这几天一直在纠结一件事,想给软件制作一个简单的图标,以前(2014-10-4 11:00)制作的是下面这个,多重ICO,最大尺寸256,无压缩(windows允许图标尺寸在大于256时按PNG方式进行 ...
- shell expect
关键的action spawn 调用要执行的命令expect 捕捉用户输入的提示 send 发送需要交互的值,替代了用户手动输入内容set 设置变量值 ...
- P1664 每日打卡心情好
题目背景 在洛谷中,打卡不只是一个简单的鼠标点击动作,通过每天在洛谷打卡,可以清晰地记录下自己在洛谷学习的足迹.通过每天打卡,来不断地暗示自己:我又在洛谷学习了一天,进而帮助自己培养恒心.耐心.细心. ...
- linux小白成长之路13————用U盘安装linux服务器
[内容指引] 制作CentOS安装引导盘: 安装CentOS: 相关设置: 一.制作CentOS安装引导盘 1.下载安装镜像文件 从官网下载iso文件: 网址:https://www.centos.o ...
- Hadoop 安装过程中出现的问题
1.hadoop-daemon.sh start namenode 启动失败 查看hadoop/logs 下面的日志 出现 2017-04-11 15:35:13,860 WARN org.apach ...
- 【转载】SQL Server 2012 日志传送
SQL Server 2012 日志传送 一.准备: 数据库为完全恢复模式,并事先做一次完全备份. 共享一个文件夹,主机备份放在这个文件夹,而且客户机有权访问这个共享文件夹. 二.基本配置 1.启动配 ...