您当前的位置:首页 > 计算机 > 编程开发 > Python

Python 统一返回对象

时间:12-14来源:作者:点击数:
CDSY,CDSY.XYZ

common_response.py

#!/usr/bin/env python
#encoding=utf-8
# @Time: 2017/5/26 11:38
# @Auhtor: en:zhujin
# @File: 
# Description: None


import sys
import time
from tornado_swagger import swagger

"""
响应对象
"""

class CommonResponse:
    """
        @description:
            响应实体对象
        @property result: 结果
        @ptype result: L{string}
        @property request_id: 请求id
        @ptype request_id: L{string}
        @property error_code: 错误码
        @ptype error_code: L{string}
        @property message: 消息
        @ptype message: L{string}
        @property date_time: 响应时间
        @ptype date_time: L{date}                        
        @property data: 返回数据对象
        @ptype data: L{Object}             
    """
    def __init__(self,
                 result="failed",
                 request_id="",
                 error_code="",
                 message="",
                 date_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),
                 data=None):
        self.result = result
        self.request_id = request_id
        self.error_code = error_code
        self.message = message
        self.date_time = date_time
        self.data = data

    def set_result(self,result):
        self.result = result

    def set_request_id(self,request_id):
        self.request_id = request_id

    def set_error_code(self,error_code):
        self.error_code = error_code

    def set_message(self,message):
        self.message = message

    def set_date_time(self,date_time):
        self.date_time = date_time

    def set_data(self,data):
        self.data = data

    def set_sumcount(self,sumcount):
        self.sumcount = sumcount

responsehander.py

import json
import time,datetime
from util.common_response import CommonResponse
class ResponseHandler():
    def set_response(self, handler, data,need_judge_request_id=True):
        """
        接口返回对象统一处理
        :param handler: 当前接口对应的tornado对象,一般为self
        :param data: 返回给前台的数据
        :return: 
        """
        if isinstance(data,dict):
            #对字典的处理
            if data is None:
                data = dict(result="failed")
            if not data.has_key("data"):
                data["data"] = None
            if not data.has_key("date_time"):
                data["date_time"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
            if not data.has_key("request_id") and need_judge_request_id:
                data["request_id"] = handler.get_argument("request_id")
            handler.write(data)
        elif isinstance(data,CommonResponse):
            #对CommonResponse对象的处理
            if data is None:
                data = CommonResponse()
            if hasattr(data,"date_time"):
                data.set_date_time(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
            if not hasattr(data,"request_id") and need_judge_request_id:
                data.set_request_id(handler.get_argument("request_id"))
            handler.write(json.loads(json.dumps(data,default=lambda obj: obj.__dict__)))
        else:
            #对其他,比如basestring的处理
            handler.write(data)
        handler.finish()
CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐