777ca50328
update. 调整融合主菜单与板块 update. 分离新闻模块
49 lines
1.1 KiB
Python
Executable File
49 lines
1.1 KiB
Python
Executable File
from typing import Optional, TypeVar, Generic
|
|
|
|
from ninja import Schema
|
|
|
|
T = TypeVar('T')
|
|
|
|
|
|
class CommonResponse(Schema, Generic[T]):
|
|
code: int
|
|
msg: Optional[str]
|
|
data: Optional[T] = None
|
|
succeed: bool = True
|
|
|
|
"""
|
|
统一的json返回格式
|
|
"""
|
|
|
|
def __init__(self, code: int = 0, data: object = None, msg: str = '', succeed: bool = True):
|
|
super().__init__(code=code, data=data, msg=msg, succeed=succeed)
|
|
|
|
@classmethod
|
|
def success(cls, code=0, data=None, msg=''):
|
|
return cls(code, data, msg, succeed=True)
|
|
|
|
@classmethod
|
|
def error(cls, code=-1, data=None, msg=''):
|
|
return cls(code, data, msg, succeed=False)
|
|
|
|
def to_dict(self):
|
|
return {
|
|
"code": self.code,
|
|
"msg": self.msg,
|
|
"data": self.data,
|
|
"succeed": self.succeed,
|
|
}
|
|
|
|
|
|
class DotDict(dict):
|
|
"""实现支持 "." 表示法的字典类"""
|
|
|
|
def __getattr__(self, attr):
|
|
try:
|
|
return self[attr]
|
|
except Exception:
|
|
return None
|
|
|
|
def __setattr__(self, attr, value):
|
|
self[attr] = value
|