Simple and practical framework of tornado

A mounting module

pip3 install tornado

II. The simplest way of starting service

import json, datetime
from tornado.web import RequestHandler, Application
from tornado.ioloop import IOLoop
from tornado.httpserver import HTTPServer
from tornado.options import define, options
# 异步
import tornado.gen

# 定义全局变量
define("port", default=9631)


class getTest(RequestHandler):
    def get(self):
        # logDebug("shoppingCart","get:test请求成功")
        return self.write(json.dumps({"code": 200, "message": "请求成功"}, ensure_ascii=False))


class MainHandler(tornado.web.RequestHandler):
    @tornado.gen.coroutine
    def head(self, *args, **kwargs):
        self.write((json.dumps({"Test": "Success"})))


if __name__ == '__main__':
    options.parse_command_line()
    # 创建一个项目应用,接入web服务器
    app = Application([
        (r"/test", getTest),  # 路由名称  ,getTest 类名
        (r"/checkhead", MainHandler),  # 健康监测一般公司都要加的哦,写法也是固定的

    ],
        # 也就是需要保证在fork子进程之前IOLoop是未被初始化的。
        # autoreload=False,
        # debug=False,
        settings={
        }
    )
    print('%s--tornado服务启动' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    # 开始监听端口,提供服务
    http_server = HTTPServer(app)
    http_server.bind((options.port))
    http_server.start()  # 默认参数1 启动一个进程
    # start(num) num<=0 按照当前os cpu核心数量 进行 进程启动 fork
    # num>1 表示通过fork 启动多个子进程
    # 在启动IOLoop之前通过start函数设置进程数量,如果设置为0表示每个CPU都启动一个进程。

    IOLoop.current().start()

Guess you like

Origin www.cnblogs.com/pythonywy/p/12111210.html