基于tornado的http服务框架

etornado地址:https://pypi.org/project/etornado/0.0.3/#history
etornado是tornado的进一步封装,使用起来更加方便。

安装etornado 0.1.6版本,该版本基于python 3.6,所以:
先用conda创建py36环境: conda create --name py36 python=3.6
激活该环境:conda activate py36
安装etornado:pip install etornado=0.1.6

run_server.py 示例:

# -*- coding: utf8 -*-
import signal
import json
import logging.config
from etornado.buildin_handlers.base_handler import BaseHandler
from etornado.application import Application

class TestHandler(BaseHandler):
    # def do_get(self):
    #     return UserDefineErrorCode.USER_ERROR1, {"error_info": self.url_args[0]}

    def do_get(self):
        return "Hello, this is demo server."

    def do_post(self):
        req = json.loads(self.request.body)
        # self.logger.info("request data: {}".format(req))
        print("request data: {}\n".format(req))
        # data = utils.profile(req)
        return req


if __name__ == "__main__":
    # logging.config.fileConfig("config/logging.conf")
    # 自定义错误码:
    # error_code_manager.register_error_enum(
    #     UserDefineErrorCode, USER_DEFINE_ERROR_INFO_MAP)
    app = Application()
    app.register_handler("/demo", TestHandler)
    signal.signal(signal.SIGINT, lambda signum, frame, app=app: app.stop()) # 接收信号,停止运行
    # run(端口号,提供http服务的进程数,线程池大小),如果线程池为0,则handler里的self.thread_pool_executor为None
    app.run(56666, 0)

    # 测试命令:
    # get请求:
    # curl localhost:56666/demo
    # post请求:
    # curl -X POST -d '123' localhost:56666/demo

启动服务:

$ python run_server.py
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
start service on port[56666], process_count[0], thread pool size[0] success!!!
request data: 123

request data: {'123': '123'}

发送curl请求,按照预期返回:

$ curl localhost:56666/demo
{"response": {"err_no": 0, "err_msg": "ok", "results": "Hello, this is demo server."}}
$ curl -X POST -d '123' localhost:56666/demo
{"response": {"err_no": 0, "err_msg": "ok", "results": 123}}
$ curl -X POST -d '{"123":"123"}' localhost:56666/demo
{"response": {"err_no": 0, "err_msg": "ok", "results": {"123": "123"}}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值