| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722 |
- # -*- coding: utf-8 -*-
- from enum import Enum
- from typing import Protocol
- from app.config.setting import settings
- class RET(Enum):
- """
- 系统返回码枚举
-
- 0~200: 成功状态码
- 400~600: HTTP标准错误码
- 4000+: 自定义业务错误码
- """
- # 成功状态码
- OK = (0, "成功")
- SUCCESS = (200, "操作成功")
- CREATED = (201, "创建成功")
- ACCEPTED = (202, "请求已接受")
- NO_CONTENT = (204, "操作成功,无返回数据")
- # HTTP标准错误码
- ERROR = (1, "请求错误")
- BAD_REQUEST = (400, "参数错误")
- UNAUTHORIZED = (401, "未授权")
- FORBIDDEN = (403, "访问受限")
- NOT_FOUND = (404, "资源不存在")
- BAD_METHOD = (405, "不支持的请求方法")
- NOT_ACCEPTABLE = (406, "不接受的请求")
- CONFLICT = (409, "资源冲突")
- GONE = (410, "资源已删除")
- PRECONDITION_FAILED = (412, "前提条件失败")
- UNSUPPORTED_MEDIA_TYPE = (415, "不支持的媒体类型")
- UNPROCESSABLE_ENTITY = (422, "无法处理的实体")
- TOO_MANY_REQUESTS = (429, "请求过于频繁")
- # 服务器错误码
- INTERNAL_SERVER_ERROR = (500, "服务器内部错误")
- NOT_IMPLEMENTED = (501, "功能未实现")
- BAD_GATEWAY = (502, "网关错误")
- SERVICE_UNAVAILABLE = (503, "服务不可用")
- GATEWAY_TIMEOUT = (504, "网关超时")
- HTTP_VERSION_NOT_SUPPORTED = (505, "HTTP版本不支持")
- # 自定义业务错误码
- EXCEPTION = (-1, "系统异常")
- DATAEXIST = (4003, "数据已存在")
- DATAERR = (4004, "数据错误")
- PARAMERR = (4103, "参数错误")
- IOERR = (4302, "IO错误")
- SERVERERR = (4500, "服务错误")
- UNKOWNERR = (4501, "未知错误")
- TIMEOUT = (4502, "请求超时")
- RATE_LIMIT_EXCEEDED = (4503, "访问频率超限")
-
- # Token相关错误码
- INVALID_TOKEN = (4504, "无效令牌")
- EXPIRED_TOKEN = (4505, "令牌过期")
-
- # 认证授权错误码
- INVALID_CREDENTIALS = (4506, "无效凭证")
- INVALID_REQUEST = (4507, "无效请求")
- INVALID_FORMAT = (4508, "格式错误")
- INVALID_INPUT = (4509, "输入错误")
- INVALID_STATE = (4510, "状态错误")
- INVALID_OPERATION = (4511, "操作错误")
- INVALID_PERMISSION = (4512, "权限错误")
- INVALID_RESOURCE = (4513, "资源错误")
- INVALID_CONFIGURATION = (4514, "配置错误")
-
- # 会话安全错误码
- INVALID_SESSION = (4515, "会话错误")
- INVALID_LICENSE = (4516, "许可证错误")
- INVALID_CERTIFICATE = (4517, "证书错误")
- INVALID_SIGNATURE = (4518, "签名错误")
- INVALID_ENCRYPTION = (4519, "加密错误")
- INVALID_DECRYPTION = (4520, "解密错误")
- INVALID_COMPRESSION = (4521, "压缩错误")
- INVALID_DECOMPRESSION = (4522, "解压错误")
-
- # 权限相关错误码
- INVALID_AUTHENTICATION = (4523, "认证错误")
- INVALID_AUTHORIZATION = (4524, "授权错误")
- INVALID_ACCESS = (4525, "访问错误")
- INVALID_SECURITY = (4526, "安全错误")
-
- # 系统组件错误码
- INVALID_NETWORK = (4527, "网络错误")
- INVALID_DATABASE = (4528, "数据库错误")
- INVALID_CACHE = (4529, "缓存错误")
- INVALID_QUEUE = (4530, "队列错误")
- INVALID_LOCK = (4531, "锁错误")
- INVALID_TRANSACTION = (4532, "事务错误")
- INVALID_LOG = (4533, "日志错误")
- INVALID_MONITORING = (4534, "监控错误")
- INVALID_NOTIFICATION = (4535, "通知错误")
-
- # 任务调度错误码
- INVALID_SCHEDULING = (4536, "调度错误")
- INVALID_TASK = (4537, "任务错误")
- INVALID_JOB = (4538, "作业错误")
- INVALID_WORKFLOW = (4539, "工作流错误")
-
- # 开发相关错误码
- INVALID_SCRIPT = (4540, "脚本错误")
- INVALID_PLUGIN = (4541, "插件错误")
- INVALID_MODULE = (4542, "模块错误")
- INVALID_PACKAGE = (4543, "包错误")
- INVALID_CLASS = (4544, "类错误")
- INVALID_FUNCTION = (4545, "函数错误")
- INVALID_METHOD = (4546, "方法错误")
- INVALID_PROPERTY = (4547, "属性错误")
- INVALID_VARIABLE = (4548, "变量错误")
- INVALID_CONSTANT = (4549, "常量错误")
- INVALID_ENUM = (4550, "枚举错误")
- INVALID_INTERFACE = (4551, "接口错误")
- INVALID_PROTOCOL = (4552, "协议错误")
-
- # 服务相关错误码
- INVALID_SERVICE = (4553, "服务错误")
- INVALID_CLIENT = (4554, "客户端错误")
- INVALID_SERVER = (4555, "服务器错误")
- INVALID_SYSTEM = (4556, "系统错误")
-
- # 用户权限错误码
- INVALID_USER = (4557, "用户错误")
- INVALID_GROUP = (4558, "用户组错误")
- INVALID_ROLE = (4559, "角色错误")
- INVALID_PERMISSION_GROUP = (4560, "权限组错误")
- INVALID_PERMISSION_ROLE = (4561, "权限角色错误")
- INVALID_PERMISSION_USER = (4562, "权限用户错误")
- INVALID_PERMISSION_RESOURCE = (4563, "权限资源错误")
- INVALID_PERMISSION_ACTION = (4564, "权限操作错误")
- INVALID_PERMISSION_SCOPE = (4565, "权限范围错误")
- INVALID_PERMISSION_LEVEL = (4566, "权限级别错误")
- INVALID_PERMISSION_TYPE = (4567, "权限类型错误")
- INVALID_PERMISSION_STATUS = (4568, "权限状态错误")
- INVALID_PERMISSION_TIME = (4569, "权限时间错误")
- INVALID_PERMISSION_CONDITION = (4570, "权限条件错误")
- INVALID_PERMISSION_POLICY = (4571, "权限策略错误")
- INVALID_PERMISSION_RULE = (4572, "权限规则错误")
- INVALID_PERMISSION_EXCEPTION = (4573, "权限异常错误")
- INVALID_PERMISSION_VALIDATION = (4574, "权限验证错误")
- INVALID_PERMISSION_AUTHENTICATION = (4575, "权限认证错误")
- INVALID_PERMISSION_AUTHORIZATION = (4576, "权限授权错误")
- INVALID_PERMISSION_ACCESS = (4577, "权限访问错误")
- INVALID_PERMISSION_SECURITY = (4578, "权限安全错误")
- INVALID_PERMISSION_NETWORK = (4579, "权限网络错误")
- INVALID_PERMISSION_DATABASE = (4580, "权限数据库错误")
- INVALID_PERMISSION_CACHE = (4581, "权限缓存错误")
- INVALID_PERMISSION_QUEUE = (4582, "权限队列错误")
- INVALID_PERMISSION_LOCK = (4583, "权限锁错误")
- INVALID_PERMISSION_TRANSACTION = (4584, "权限事务错误")
- INVALID_PERMISSION_LOG = (4585, "权限日志错误")
- INVALID_PERMISSION_MONITORING = (4586, "权限监控错误")
- INVALID_PERMISSION_NOTIFICATION = (4587, "权限通知错误")
- INVALID_PERMISSION_SCHEDULING = (4588, "权限调度错误")
- INVALID_PERMISSION_TASK = (4589, "权限任务错误")
- INVALID_PERMISSION_JOB = (4590, "权限作业错误")
- INVALID_PERMISSION_WORKFLOW = (4591, "权限工作流错误")
- INVALID_PERMISSION_SCRIPT = (4592, "权限脚本错误")
- INVALID_PERMISSION_PLUGIN = (4593, "权限插件错误")
- INVALID_PERMISSION_MODULE = (4594, "权限模块错误")
- INVALID_PERMISSION_PACKAGE = (4595, "权限包错误")
- INVALID_PERMISSION_CLASS = (4596, "权限类错误")
- INVALID_PERMISSION_FUNCTION = (4597, "权限函数错误")
- INVALID_PERMISSION_METHOD = (4598, "权限方法错误")
- INVALID_PERMISSION_PROPERTY = (4599, "权限属性错误")
- INVALID_PERMISSION_VARIABLE = (4600, "权限变量错误")
- INVALID_PERMISSION_CONSTANT = (4601, "权限常量错误")
- INVALID_PERMISSION_ENUM = (4602, "权限枚举错误")
- INVALID_PERMISSION_INTERFACE = (4603, "权限接口错误")
- INVALID_PERMISSION_PROTOCOL = (4604, "权限协议错误")
- INVALID_PERMISSION_SERVICE = (4605, "权限服务错误")
- INVALID_PERMISSION_CLIENT = (4606, "权限客户端错误")
- INVALID_PERMISSION_SERVER = (4607, "权限服务器错误")
- INVALID_PERMISSION_SYSTEM = (4608, "权限系统错误")
- def __init__(self, code: int, msg: str):
- """
- 初始化返回码。
-
- 参数:
- - code (int): 错误码。
- - msg (str): 错误信息。
-
- 返回:
- - None
- """
- self._code = code
- self._msg = msg
- @property
- def code(self) -> int:
- """获取错误码"""
- return self._code
- @property
- def msg(self) -> str:
- """获取错误信息"""
- return self._msg
- class CommonConstant:
- """
- 常用常量
-
- WWW: www主域名
- HTTP: http请求
- HTTPS: https请求
- LOOKUP_RMI: RMI远程方法调用
- LOOKUP_LDAP: LDAP远程方法调用
- LOOKUP_LDAPS: LDAPS远程方法调用
- YES: 是否为系统默认(是)
- NO: 是否为系统默认(否)
- DEPT_NORMAL: 部门正常状态
- DEPT_DISABLE: 部门停用状态
- UNIQUE: 校验是否唯一的返回标识(是)
- NOT_UNIQUE: 校验是否唯一的返回标识(否)
- """
- # 域名相关
- WWW = "www."
- HTTP = "http://"
- HTTPS = "https://"
-
- # 远程调用
- LOOKUP_RMI = "rmi:"
- LOOKUP_LDAP = "ldap:"
- LOOKUP_LDAPS = "ldaps:"
-
- # 系统标识
- YES = "Y"
- NO = "N"
-
- # 部门状态
- DEPT_NORMAL = "0" # 正常
- DEPT_DISABLE = "1" # 停用
-
- # 唯一性校验
- UNIQUE = True
- NOT_UNIQUE = False
- class JobConstant:
- """
- 定时任务常量
- JOB_ERROR_LIST: 定时任务禁止调用模块及违规字符串列表
- JOB_WHITE_LIST: 定时任务允许调用模块列表
- """
- JOB_ERROR_LIST = [
- "app",
- "config",
- "exceptions",
- "import ",
- "middlewares",
- "module_admin",
- "open(",
- "os.",
- "server",
- "sub_applications",
- "subprocess.",
- "sys.",
- "utils",
- "while ",
- "__import__",
- """,
- """,
- ",",
- "?",
- ":",
- ";",
- "/",
- "|",
- "+",
- "-",
- "=",
- "~",
- "!",
- "#",
- "$",
- "%",
- "^",
- "&",
- "*",
- "<",
- ">",
- "(",
- ")",
- "[",
- "]",
- "{",
- "}",
- " ",
- ]
- JOB_WHITE_LIST = ["function_task"]
- class MenuConstant:
- """
- 菜单常量
- TYPE_DIR: 菜单类型(目录)
- TYPE_MENU: 菜单类型(菜单)
- TYPE_BUTTON: 菜单类型(按钮)
- YES_FRAME: 是否菜单外链(是)
- NO_FRAME: 是否菜单外链(否)
- LAYOUT: Layout组件标识
- PARENT_VIEW: ParentView组件标识
- INNER_LINK: InnerLink组件标识
- """
- TYPE_DIR = "M"
- TYPE_MENU = "C"
- TYPE_BUTTON = "F"
- YES_FRAME = 0
- NO_FRAME = 1
- LAYOUT = "Layout"
- PARENT_VIEW = "ParentView"
- INNER_LINK = "InnerLink"
- class GenConstant:
- """
- 代码生成常量
- COLUMNTYPE_STR: 数据库字符串类型
- COLUMNTYPE_TEXT: 数据库文本类型
- COLUMNTYPE_TIME: 数据库时间类型
- COLUMNTYPE_GEOMETRY: 数据库字空间类型
- COLUMNTYPE_NUMBER: 数据库数字类型
- COLUMNNAME_NOT_EDIT: 页面不需要编辑字段
- COLUMNNAME_NOT_LIST: 页面不需要显示的列表字段
- COLUMNNAME_NOT_QUERY: 页面不需要查询字段
- BASE_ENTITY: Entity基类字段
- TREE_ENTITY: Tree基类字段
- HTML_INPUT: 文本框
- HTML_TEXTAREA: 文本域
- HTML_SELECT: 下拉框
- HTML_RADIO: 单选框
- HTML_CHECKBOX: 复选框
- HTML_DATETIME: 日期控件
- HTML_IMAGE_UPLOAD: 图片上传控件
- HTML_FILE_UPLOAD: 文件上传控件
- HTML_EDITOR: 富文本控件
- TYPE_DECIMAL: 高精度计算类型
- TYPE_DATE: 时间类型
- QUERY_LIKE: 模糊查询
- QUERY_EQ: 相等查询
- REQUIRE: 需要
- DB_TO_SQLALCHEMY_TYPE_MAPPING: 数据库类型与sqlalchemy类型映射
- DB_TO_PYTHON_TYPE_MAPPING: 数据库类型与python类型映射
- """
-
- # 数据库字符串类型
- COLUMNTYPE_STR = (
- ["character varying", "varchar", "character", "char"]
- if settings.DATABASE_TYPE == "postgres"
- else ["char", "varchar", "nvarchar", "varchar2"]
- )
- # 数据库文本类型
- COLUMNTYPE_TEXT = (
- ["text", "citext"] if settings.DATABASE_TYPE == "postgres" else ["tinytext", "text", "mediumtext", "longtext"]
- )
- # 数据库时间类型
- COLUMNTYPE_TIME = (
- [
- "date",
- "time",
- "time with time zone",
- "time without time zone",
- "timestamp",
- "timestamp with time zone",
- "timestamp without time zone",
- "interval",
- ]
- if settings.DATABASE_TYPE == "postgres"
- else ["datetime", "time", "date", "timestamp"]
- )
- # 数据库字空间类型
- COLUMNTYPE_GEOMETRY = (
- ["point", "line", "lseg", "box", "path", "polygon", "circle"]
- if settings.DATABASE_TYPE == "postgres"
- else [
- "geometry",
- "point",
- "linestring",
- "polygon",
- "multipoint",
- "multilinestring",
- "multipolygon",
- "geometrycollection",
- ]
- )
- # 数据库数字类型
- COLUMNTYPE_NUMBER = [
- "tinyint",
- "smallint",
- "mediumint",
- "int",
- "number",
- "integer",
- "bit",
- "bigint",
- "float",
- "double",
- "decimal",
- "boolean",
- "bool"
- ]
- # 页面不需要显示的添加字段
- COLUMNNAME_NOT_ADD_SHOW = ["created_time", "updated_time"]
- # 页面不需要显示的编辑字段
- COLUMNNAME_NOT_EDIT_SHOW = ["uuid"]
- # 页面不需要编辑字段
- COLUMNNAME_NOT_EDIT = ["id", "uuid", "created_time", "updated_time"]
-
- # 页面不需要显示的列表字段
- COLUMNNAME_NOT_LIST = ["id", "uuid"]
-
- # 页面不需要查询字段
- COLUMNNAME_NOT_QUERY = ["id", "uuid", "description"]
-
- # Crud基类字段
- CRUD_COLUMN_NOT_EDIT = ["create_by", "description", "created_time", "updated_time"]
-
- # 实体基类字段
- BASE_ENTITY = ["id", "uuid", "status", "description", "created_time", "updated_time", "created_id", "updated_id"]
-
- # Tree基类字段
- TREE_ENTITY = ["parent_name", "parent_id", "order", "ancestors", "children"]
-
- # 文本框
- HTML_INPUT = "input"
-
- # 文本域
- HTML_TEXTAREA = "textarea"
-
- # 下拉框
- HTML_SELECT = "select"
-
- # 单选框
- HTML_RADIO = "radio"
-
- # 复选框
- HTML_CHECKBOX = "checkbox"
-
- # 日期控件
- HTML_DATETIME = "datetime"
-
- # 图片上传控件
- HTML_IMAGE_UPLOAD = "imageUpload"
-
- # 文件上传控件
- HTML_FILE_UPLOAD = "fileUpload"
-
- # 富文本控件
- HTML_EDITOR = "editor"
-
- # 高精度计算类型
- TYPE_DECIMAL = "Decimal"
-
- # 时间类型
- TYPE_DATE = ["date", "time", "datetime"]
-
- # 模糊查询
- QUERY_LIKE = "LIKE"
-
- # 相等查询
- QUERY_EQ = "EQ"
-
- # 需要
- REQUIRE = True
-
- # 数据库类型与sqlalchemy类型映射
- DB_TO_SQLALCHEMY = {
- "boolean": "Boolean",
- "smallint": "SmallInteger",
- "integer": "Integer",
- "int4": "Integer",
- "bigint": "BigInteger",
- "real": "Float",
- "double precision": "Float",
- "numeric": "Numeric",
- "character varying": "String",
- "varchar": "String",
- "character": "String",
- "text": "Text",
- "bytea": "LargeBinary",
- "date": "Date",
- "time": "Time",
- "time with time zone": "Time",
- "time without time zone": "Time",
- "timestamp": "DateTime",
- "timestamp with time zone": "DateTime",
- "timestamp without time zone": "DateTime",
- "interval": "Interval",
- "json": "JSON",
- "jsonb": "JSONB",
- "uuid": "Uuid",
- "inet": "INET",
- "cidr": "CIDR",
- "macaddr": "MACADDR",
- "point": "Geometry",
- "line": "Geometry",
- "lseg": "Geometry",
- "box": "Geometry",
- "path": "Geometry",
- "polygon": "Geometry",
- "circle": "Geometry",
- "bit": "Bit",
- "bit varying": "Bit",
- "tsvector": "TSVECTOR",
- "tsquery": "TSQUERY",
- "xml": "String",
- "array": "ARRAY",
- "composite": "JSON",
- "enum": "Enum",
- "range": "Range",
- "money": "Numeric",
- "pg_lsn": "BigInteger",
- "txid_snapshot": "String",
- "oid": "BigInteger",
- "regproc": "String",
- "regclass": "String",
- "regtype": "String",
- "regrole": "String",
- "regnamespace": "String",
- "int2vector": "ARRAY",
- "oidvector": "ARRAY",
- "pg_node_tree": "Text",
- } if settings.DATABASE_TYPE == "postgres" else {
- # 数值类型
- "TINYINT": "SmallInteger",
- "SMALLINT": "SmallInteger",
- "MEDIUMINT": "Integer",
- "INT": "Integer",
- "INTEGER": "Integer",
- "BIGINT": "BigInteger",
- "FLOAT": "Float",
- "DOUBLE": "Float",
- "DECIMAL": "DECIMAL",
- "BIT": "Integer",
- "NUMERIC": "Numeric",
- # 日期和时间类型
- "DATE": "Date",
- "TIME": "Time",
- "DATETIME": "DateTime",
- "TIMESTAMP": "TIMESTAMP",
- "YEAR": "Integer",
- # 字符串类型
- "CHAR": "CHAR",
- "VARCHAR": "String",
- "TINYTEXT": "Text",
- "TEXT": "Text",
- "MEDIUMTEXT": "Text",
- "LONGTEXT": "Text",
- "BINARY": "BINARY",
- "VARBINARY": "VARBINARY",
- "TINYBLOB": "LargeBinary",
- "BLOB": "LargeBinary",
- "MEDIUMBLOB": "LargeBinary",
- "LONGBLOB": "LargeBinary",
- # 枚举和集合类型
- "ENUM": "Enum",
- "SET": "String",
- # JSON 类型
- "JSON": "JSON",
- # 空间数据类型(需要扩展支持,如 GeoAlchemy2)
- "GEOMETRY": "Geometry", # 需要安装 geoalchemy2
- "POINT": "Geometry",
- "LINESTRING": "Geometry",
- "POLYGON": "Geometry",
- "MULTIPOINT": "Geometry",
- "MULTILINESTRING": "Geometry",
- "MULTIPOLYGON": "Geometry",
- "GEOMETRYCOLLECTION": "Geometry",
- # 其他类型
- "BOOL": "Boolean",
- "UUID": "String",
- }
-
- # 数据库类型与python类型映射
- DB_TO_PYTHON = {
- "boolean": "bool",
- "smallint": "int",
- "integer": "int",
- "int4": "int",
- "bigint": "int",
- "real": "float",
- "double precision": "float",
- "numeric": "Decimal",
- "character varying": "str",
- "varchar": "str",
- "character": "str",
- "text": "str",
- "bytea": "bytes",
- "date": "date",
- "time": "time",
- "time with time zone": "time",
- "time without time zone": "time",
- "timestamp": "datetime",
- "timestamp with time zone": "datetime",
- "timestamp without time zone": "datetime",
- "interval": "timedelta",
- "json": "dict",
- "jsonb": "dict",
- "uuid": "str",
- "inet": "str",
- "cidr": "str",
- "macaddr": "str",
- "point": "list",
- "line": "list",
- "lseg": "list",
- "box": "list",
- "path": "list",
- "polygon": "list",
- "circle": "list",
- "bit": "int",
- "bit varying": "int",
- "tsvector": "str",
- "tsquery": "str",
- "xml": "str",
- "array": "list",
- "composite": "dict",
- "enum": "str",
- "range": "list",
- "money": "Decimal",
- "pg_lsn": "int",
- "txid_snapshot": "str",
- "oid": "int",
- "regproc": "str",
- "regclass": "str",
- "regtype": "str",
- "regrole": "str",
- "regnamespace": "str",
- "int2vector": "list",
- "oidvector": "list",
- "pg_node_tree": "str",
- } if settings.DATABASE_TYPE == "postgres" else {
- # 数值类型
- "TINYINT": "int",
- "SMALLINT": "int",
- "MEDIUMINT": "int",
- "INT": "int",
- "INTEGER": "int",
- "BIGINT": "int",
- "FLOAT": "float",
- "DOUBLE": "float",
- "NUMERIC": "float",
- "DECIMAL": "Decimal",
- "BIT": "int",
- # 日期和时间类型
- "DATE": "datetime.date",
- "TIME": "datetime.time",
- "DATETIME": "datetime.datetime",
- "TIMESTAMP": "datetime.datetime",
- "YEAR": "int",
- "TINYINT UNSIGNED": "int", # 无符号小整数类型
- # 布尔类型
- "BOOLEAN": "bool",
- "BOOL": "bool", # 布尔类型,通常与 BOOLEAN 相同
- # UUID
- "UUID": "str", # UUID 一般作为字符串
- # 字符串类型
- "CHAR": "str",
- "VARCHAR": "str",
- "TINYTEXT": "str",
- "TEXT": "str",
- "MEDIUMTEXT": "str",
- "LONGTEXT": "str",
- "BINARY": "bytes",
- "VARBINARY": "bytes",
- "TINYBLOB": "bytes",
- "BLOB": "bytes",
- "MEDIUMBLOB": "bytes",
- "LONGBLOB": "bytes",
- # 枚举和集合类型
- "ENUM": "str",
- "SET": "list",
- # JSON 类型
- "JSON": "dict",
- # 空间数据类型(通常需要特殊处理)
- "GEOMETRY": "bytes", # 空间数据类型,通常存储为字节流
- "POINT": "bytes", # 点数据类型
- "LINESTRING": "bytes", # 线数据类型
- "POLYGON": "bytes", # 多边形数据类型
- "MULTIPOINT": "bytes", # 多点数据类型
- "MULTILINESTRING": "bytes", # 多线数据类型
- "MULTIPOLYGON": "bytes", # 多多边形数据类型
- "GEOMETRYCOLLECTION": "bytes", # 几何集合类型
- }
- class TypedContextProtocol(Protocol):
- perf_time: float
- ip: str
- country: str | None
- region: str | None
- city: str | None
- user_agent: str
- os: str | None
- browser: str | None
- device: str | None
- permission: str | None
-
- # if __name__ == "__main__":
- # print(RET.OK.msg) # 输出: 成功
|