zoukankan      html  css  js  c++  java
  • tornado学习笔记(一)

    hello.py

    mport tornado.httpserver
    import tornado.ioloop
    import tornado.options
    import tornado.web
    
    from tornado.options import define, options
    define("port", default=8000, help="run on the given port", type=int)
    
    class IndexHandler(tornado.web.RequestHandler):
        def get(self):
            greeting = self.get_argument('greeting', 'hello')
            self.write(greeting + ', friendly user!')
    
    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.instance().start()
    

    这是tornado一个简单服务器的例子

    define("port", default=8000, help="...", type = int)定义了服务器监听的默认端口

    IndexHandler类用来处理请求,get_argument可以获取get或者post请求中的关键字参数,然后用write输出到页面

    if __name__ == "__main__":里面的代码是实际上运行服务器的代码,parse_command_line函数解析命令行的输入,然后建立Application类型的应用,里面定义handlers,处理不同的url对应的处理类,用正则表达式进行匹配。通过这个app对象可以建立HTTPServer来监听端口,最后运行IOLoop来准备接受http请求

    tornado的url正则默认包含行起始和结尾的,如"/"已经表示"^/$"

    命令行执行python hello.py --port=8000可以制定端口运行服务器

    终端使用curl来调试:$ curl http://localhost:8000/?greeting=Haroo

    http status code

    • 404 : not found
    • 400 : bad request,如使用get_argument但没有给默认值,如果查找不到关键字就会返回400
    • 405 : method not allowed
    • 500 : internal server error
    • 200 : ok

    当出现错误时,tornado会给客户端返回错误状态码和错误信息,如果要自己设置错误响应,可以重写RequestHandler类中的write_error函数

    class IndexHandler(tornado.web.RequestHandler):
        def get(self):
            ...
        def write_error(self, status_code, **kwargs):
            self.write("damn it, user! you caused a %d error." % status_code
    
  • 相关阅读:
    jQuery,from标签,歪路子小技巧
    UniApp随笔
    JS的一些操作
    文本环绕
    Dictionary 存储函数,方法
    GIT项目管理
    Vue2 学习记录
    VSCode + Vue 学习笔记
    Mysql,Insert,Select时自增长问题
    ASP.NET SignalR Troubeshooting
  • 原文地址:https://www.cnblogs.com/jolin123/p/4499791.html
Copyright © 2011-2022 走看看