tornado框架的简单实用

KarlDoenitz 2019-12-28

一.安装模块

pip3 install tornado

二.简单的起服务的方法

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()

相关推荐