zoukankan      html  css  js  c++  java
  • 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的异同:

  • 相关阅读:
    Django进阶之CSRF
    Django进阶之session
    simple_tag,filte,分页以及cookie和装饰器
    Django 中url补充以及模板继承
    Django补充及初识Ajax
    2016年12月20日感想
    Docker的镜像
    继续Django
    jS正则和WEB框架Django的入门
    Docker的容器
  • 原文地址:https://www.cnblogs.com/taoge188/p/10604842.html
Copyright © 2011-2022 走看看