欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

tornado框架的简单实用

程序员文章站 2022-08-02 18:05:57
一.安装模块 二.简单的起服务的方法 ......

一.安装模块

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