zoukankan      html  css  js  c++  java
  • tornado-简单的服务器非阻塞

    1.服务器 非阻塞

    import tornado.ioloop
    import tornado.web
    import tornado.httpserver  # 非阻塞
    import tornado.options   # 提供了多种选择 python xxx.py --port=xxxx
    
    from tornado.options import define,options
    
    define('port',default=8000,help='run port',type=int)  # windows通过Ctrl+鼠标左键
    define('version',default=0.1,help='version',type=str)  # 此vim上通过;gb查看define
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.render("ces.html")  # 写入页面
    class AHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("hello world A")
            name = self.get_argument('aa','默认值')
            self.write("<br>")
            self.write(name)  #多个值,取最后一个值
            self.write("<br>上面是get_argument,下面是get_arguments:")
            self.write("<br>")
    
    # get_arguments ,write() only accepts bytes, unicode, and dict objects.
            name = self.get_arguments('aa')  #得到列表,不能直接write
            self.write("<span>".join(name)) # 所有值
    
    application = tornado.web.Application(
        handlers=[(r"/",MainHandler),
        (r'/a', AHandler)
         ],
        template_path='templates',  # 表明页面html的路径
        debug=True           # 上传后服务器自动重启
    )
    
    if __name__ == '__main__':
        tornado.options.parse_command_line()   # 通过sys.arg获取命令行输入参数(python xxx.py --port=xxx)
        print(options.port)
        print(options.version)
    
        http_server = tornado.httpserver.HTTPServer(application)  # 非阻塞
        application.listen(options.port)
        tornado.ioloop.IOLoop.instance().start()   #  启动io循环
     # *** 知识点  路由 Handler write get_argument get_arguments url传参方式

    # 路由 * 客户端访问服务器 可以看成客服端读取服务器的资源,路由就是确定访问的资源路径
    # 路由表 匹配路径执行对应的事件

    # Handler:先简单看成 确定路由后,执行相对的事件

    # write 输出到浏览器。 先写入缓冲(flush直接写到浏览器)再一起写入浏览器

    # get_argument #多个值,取最后一个值
    # get_arguments #多个值,取所有值 list类型

    #url传参方式
    # 通过命令行传参数python xxx.py --port=xxxx
    # 通过查询字符串 url+ ?name=蜘蛛侠 (get_argument,get_arguments)

    # render写入页面
    # template_path = 'templates', # 写在路由表里,表明路径templates

    # debug调式 虫子晶体管
  • 相关阅读:
    影视-纪录片:《梵净山》
    NuGet:ServiceStack
    资源-产品:ServiceStack
    Win7x64安装Oracle11201x64 解决PLSQL Developer无法找到oci问题
    Oracle11g环境设置-windows环境
    安装sql server提示挂起报错
    安装oracle11g未找到文件WFMLRSVCApp.ear文件
    配置linux中文
    卸载rpm包提示:error: specifies multiple packages
    FileZilla简单介绍及运用
  • 原文地址:https://www.cnblogs.com/tangpg/p/8443436.html
Copyright © 2011-2022 走看看