zoukankan      html  css  js  c++  java
  • TornadoLesson01安装、路由,输入和输出 17王晶龙

    一、Tornado

        Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

      得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。
     

    二、安装和pycharm环境搭建

        我的电脑虚拟机用nat(端口转发)就连不上网,故在此用桥接模式,在此处添加解释器路径。

        

        

        创建好项目后,在工具=》Deployment=》Configuration,创建一个SFTP,原本有一个删掉,重新创建一个。填入信息如下。

        RootPath是你的文件同步在服务器上的路径

        左上角的勾选,SFTP名字会加粗,代表默认同步在服务器

        别忘记勾选save password

        

        

        在Mappings中,Deployment path on server ' ' 加一个/

        

        在工具=》Deployment=》Options里选择如下图。配置好后,ctrl+s就可以与服务器同步代码

        

        

        注:在项目设置里,

        上面一行remote path /home/pyvip/work是远程代码的执行路径

        下面一行的 /home/pyvip/work是代码同步上传路径

          

          torado的安装直接在linux服务器中输入pip install toranto 就可以

    三、路由

        

    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("hello world!")
    
    
    application = tornado.web.Application([
        (r"/", MainHandler)
    ])
    
    if __name__ == '__main__':
        application.listen(8000)
        tornado.ioloop.IOLoop.instance().start();

      1)入口

        __name__当该模块直接运行时,__name__的值为‘__main__’,当其他模块引用该模块__name__的值为该模块的名字。

        if __name__ == '__main__':    则判断直接运行该模块,则执行。

        pycharm环境配置好后可以直接运行,也可以在服务器运行python test.py,正确运行后,浏览器输入http://192.168.1.104:8000/   IP地址加端口号就可以访问。

        端口转发的话,用本地IP加端口号访问,127.0.0.1:8000   或者   localhost:8000

      2)路由

        application = tornado.web.Application([

            (r"/", MainHandler)
       ])
       
       路由就是访问服务器请求的入口,通过路由来自前端的请求被丢进事件池
    ioloop处理。
       路由里可以以列表形式,放多个请求接口,匹配后面的函数
    MainHandler,来处理请求
       http://192.168.1.104:8000/匹配(r"/", MainHandler) 中的/
    
    

    四、输入和输出

    import tornado.ioloop
    import tornado.web
    import tornado.httpserver
    import tornado.options
    
    from tornado.options import define, options
    
    define('port', default=8080, help='run port', type=int)
    define('version', default='0.01', help='version', type=str)
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("hello world!")
            self.write('<br>')
    
            # get_argument如果有多个name,则取最后一个
            name = self.get_argument('name', 'null')
            self.write(name)
            print(name)
    
            # get_arguments()获取的是所有符合的条件结果的一个列表,write里参数只能是str,要拼接成字符串输出
            age = self.get_arguments('age')
            self.write('<br>'.join(age))
            print(age)
    
    application = tornado.web.Application([
        (r"/", MainHandler)
    ])
    
    if __name__ == '__main__':
        tornado.options.parse_command_line()
        print(options.port)
        print(options.version)
        http_server = tornado.httpserver.HTTPServer(application)
        http_server.listen(options.port)
        tornado.ioloop.IOLoop.instance().start()

        上面代码为一个比较完整的tornado的简单例子,通过http_server来监听端口,这样请求才不会阻塞,提高请求处理的效率

        1)输入

          获取浏览器上输入的参数和值

          get_argument    如果有多个相同元素,则取最后一个,只取一个

          get_arguments   获取的是所有符合的条件结果的一个列表(write里参数只能是str,要拼接成字符串输出)

          http://192.168.1.104:8080/?name='小明'&name='小红'&age=18&age=19  上面代码按照以上网址显示的结果

          

        2)输出   

          write(str)
        
          write里参数只能是str,get_arguments获取到的结果是一个列表,要拼接成字符串输出
            age = self.get_arguments('age')
            self.write('<br>'.join(age))
          否则会报错
  • 相关阅读:
    自信你就赢了
    记移动开发者大会中国(MDCC)
    Android Google Map V2想说爱你不容易
    关于用好Android资料的一些总结和反思
    按钮添加四种点击事件
    Google的可穿戴设备Android Wear抢先看
    跟上潮流,做个微信开发者平台
    我也开始玩儿硬件——树莓派入门
    我也来自己做刷机包
    简单谈谈eclipse下搭建PhoneGap环境来开发Android程序
  • 原文地址:https://www.cnblogs.com/bear905695019/p/8429906.html
Copyright © 2011-2022 走看看