基於tornado的http服務框架

2021-10-02 04:29:44 字數 2475 閱讀 4913

安裝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

class

testhandler

(basehandler)

:# def do_get(self):

# return userdefineerrorcode.user_error1,

defdo_get

(self)

:return

"hello, this is demo server."

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

)"/demo"

, testhandler)

signal.signal(signal.sigint,))

# 接收訊號,停止執行

# run(埠號,提供http服務的程序數,執行緒池大小),如果執行緒池為0,則handler裡的self.thread_pool_executor為none

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:

傳送curl請求,按照預期返回:

$ curl localhost:56666/demo

}$ curl -x post -d '123' localhost:56666/demo

}$ curl -x post -d '' localhost:56666/demo

}}

基於tornado的web ssh專案

上次有幸 樑勝大牛的技術分享,其中乙個演示是瀏覽器中顯示了乙個linux終端並登入管理server,於是決定自己實現乙個 github中有乙個專案gateone實現了此功能,本來想學習一下,但是考慮到 實在過多就放棄了,下面說下自己的實現。專案位址 webssh 終端展示 使用了github開源專案...

基於tornado的WEB服務

搭建乙個微型的web服務,監聽8000埠,如有接收到客戶端的網頁請求,根據請求的路徑 返回 對應的資訊。監聽埠設定 命令列或是python指令碼內?如何設定 web.py程式執行時,必須監聽伺服器端口,以便向客戶提供服務。如果我們將埠,定義在指令碼 內部,那麼,如果想要改動監聽的埠,我們必須要修改指...

基於tornado的簡單socket通訊建立

這裡有比較全的介紹,寫得非常好。顯示效果如下 如下 import errno import functools from tornado ioloop import ioloop import socket import time import queue sock socket socket so...