SD_WebTagManager/python/ServerHandler.py

54 lines
1.8 KiB
Python
Raw Normal View History

2026-01-12 17:16:33 +08:00
from abc import abstractmethod
from ResponseCode import ResponseCode
class ServerHandler(object):
def __init__(self):
super(ServerHandler, self).__init__()
self._response_code: ResponseCode = ResponseCode.RESPONSE_100_CONTINUE
self._response_message = ""
self._return_message = {"code": 0, "message": ""}
self.is_set_response_code = False
self.is_set_response_message = False
@abstractmethod
def core(self) -> None:
# TODO: 用于处理核心内容, 数据库逻辑等
pass
@abstractmethod
def create_response_message(self) -> dict:
# TODO: 用于创建返回的内容, 以及关闭数据库连接等
pass
def set_response_message(self, message):
self._response_message = message
self.is_set_response_message = True
def _return_response(self) -> dict:
self._return_message["code"] = self._response_code.code
self._return_message["message"] = self._response_code.message
if self.is_set_response_message:
self._return_message["data"] = self._response_message
return self._return_message
def set_response_code(self, code_enum: ResponseCode):
self._response_code = code_enum
self.is_set_response_code = True
def run(self) -> dict:
try:
self.core()
self.create_response_message()
except Exception as e:
print(e)
self.set_response_code(ResponseCode.RESPONSE_500_SERVER_Exception)
else:
if not self.is_set_response_code:
if not self.is_set_response_message:
self.set_response_code(ResponseCode.RESPONSE_101_NOT_BUILD_MSG)
else:
self.set_response_code(ResponseCode.RESPONSE_200_SUCCESS)
return self._return_response()