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"}}}