Tornado路由

1.环境以及tornado安装

创建虚拟环境

安装tornado。具体实现步骤参考django安装步骤

2.路由与tornado的启动

# 实现一个最简单的tornado服务
import tornado.ioloop #监听循环
import tornado.web #tornado包核心模块
import tornado.httpserver #非阻塞服务器
import tornado.options #


class MainHandler(tornado.web.RequestHandler):

def get(self):
self.write('hello world')


application = tornado.web.Application(
handlers=[
(r'/',MainHandler), #路由表
]
#列表,列表中包含元组。配置路径信息
) #实例化操作
#可以传入很多参数
#配置参数项

if __name__ == '__main__': #用来做测试,自己调用
tornado.options.parse_command_line() #打印请求信息(日志信息),不加这一行后端不会有日志信息
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8080) #监听,绑定端口,服务器由主动变为被动
tornado.ioloop.IOLoop.current().start() #开启监听循环

#单进程单线程epoll
#epoll ,主动监听,把监听的任务交给操作系统,不断询问。监听循环

后端对应的日志信息:

指定端口访问

运行时如果不指定端口,就有默认端口,如果想指定端口使用已指定的端口

# 实现一个最简单的tornado服务
import tornado.ioloop #监听循环
import tornado.web  #tornado包核心模块
import tornado.httpserver  #非阻塞服务器
import tornado.options
from tornado.options import define,options  #指定端口传参

define('port',default=8080,help='run server port',type=int)


class MainHandler(tornado.web.RequestHandler):

    def get(self):
        self.write('hello world')


application = tornado.web.Application(
    handlers=[
        (r'/',MainHandler),    #路由表
    ]
) 

if __name__ == '__main__':  #用来做测试,自己调用
    tornado.options.parse_command_line() #打印请求信息(日志信息),不加这一行后端不会有日志信息
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)  #监听,绑定端口,服务器由主动变为被动
    tornado.ioloop.IOLoop.current().start() #开启监听循环

#单进程单线程epoll
#epoll ,主动监听,把监听的任务交给操作系统,不断询问。监听循环

访问方式:

(tornado_pro) pyvip@Vip:~/tornado_pro$ python 01-test.py --port=8000
[I 190326 23:57:26 web:2246] 200 GET / (10.0.2.2) 1.88ms
[W 190326 23:57:27 web:2246] 404 GET /favicon.ico (10.0.2.2) 0.82ms

访问结果如下:(访问不通时,看是否做了端口映射)

 

报错解释:

拒绝访问:暂停访问,服务未启动

Not Found:找不到页面,可以访问

 

输入输出:

输出:write

输入: http://127.0.0.1:8080/index?name=%20aaa 

get请求:url ?key=value&key1=value1

post请求:form表单中获取。

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('hello world') #向浏览器输出内容
        self.write('<br/>') # 页面解析html代码
        self.write('\n') #  页面不能解析linux代码,需要向浏览器输出必须使用浏览器能够解析的代码
        self.write('hello world')


class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        name = self.get_argument('name','no') #获取页面传递过来的参数(获取输入信息)
        self.write(name+' hello ')



application = tornado.web.Application(
    handlers=[
        (r'/', MainHandler),  # 路由表
        (r'/index', IndexHandler),
    ]

请求结果如下:

讨论:get_argument与get_arguments的异同:

 

转载于:https://www.cnblogs.com/taoge188/p/10604842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值