使用tornado搭建简单的web服务

from tornado.options import define, parse_command_line, options
from tornado.web import RequestHandler
import tornado.httpserver
import tornado.ioloop

define("port", default=1010, help="port----", type=int)
define("debug", default=False, help="debug----")


class IndexHandelr(RequestHandler):
    def get(self):
        self.write("hello-wordl!")

class IndexHandler2(RequestHandler):
    def get(self, name: str):
        self.write(name)

if __name__ == '__main__':
    parse_command_line()
    app = tornado.web.Application([(r"/index", IndexHandelr), 
                                   (r"/get/(\d+)", IndexHandler2)], 
                                  debug=options.debug)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

访问地址:http://127.0.0.1:1010/index,得到write中的内容

  • define中设置的属性会成为options中的全局属性,define中的type参数是校验对应的值类型,如果不是相应的类型将会抛出异常, 访问对应的端口和调试模式使用options.port, options.debug
  • parse_command_line() 方法:解析命令行参数,运行py文件时:python app.py –port=1010 –debug=1,就能解析出其中的port和debug参数值
  • IndexHandler是相应类,能使用不同的handler对应不同的路由来相应请求
  • Application对象被创建之后传给HttpServer对象,然后使用指定的端口监听(options.port)
  • 路由(r”/”),可以是正则表达式,一个handler可以对应多个路由,这些路由执行的都是对应handler中的请求方法
  • (\d+)是使用正则表达式,d可以传数值

常用的http状态码

本文地址:https://blog.csdn.net/ayangann915/article/details/110928145