style: 统一代码格式和字符串引号使用

refactor: 优化代码结构和可读性

feat: 添加http_limit模块实现请求限制功能

fix: 修复异步任务中使用time.sleep的问题

chore: 更新依赖项并添加pytest测试框架

docs: 更新项目描述信息

perf: 优化Redis序列化方式使用JSON替代pickle

test: 添加测试相关配置和依赖
This commit is contained in:
zhangtao
2026-01-17 20:07:25 +08:00
parent 32b8f18b17
commit 1d54dca76c
139 changed files with 4920 additions and 2826 deletions
@@ -1,3 +1,5 @@
from dataclasses import dataclass
from fastapi import Query
from pydantic import BaseModel, ConfigDict, Field, field_validator
@@ -11,91 +13,102 @@ class GenDBTableSchema(BaseModel):
model_config = ConfigDict(from_attributes=True)
database_name: str | None = Field(default=None, description='数据库名称')
table_name: str | None = Field(default=None, description='表名称')
table_type: str | None = Field(default=None, description='表类型')
table_comment: str | None = Field(default=None, description='表描述')
database_name: str | None = Field(default=None, description="数据库名称")
table_name: str | None = Field(default=None, description="表名称")
table_type: str | None = Field(default=None, description="表类型")
table_comment: str | None = Field(default=None, description="表描述")
class GenTableColumnSchema(BaseModel):
"""代码生成业务表字段创建模型(原始字段+生成配置)。
- 从根本上解决问题:所有字段都设置了合理的默认值,避免None值问题
"""
model_config = ConfigDict(from_attributes=True)
table_id: int = Field(default=0, description='归属表编号')
column_name: str = Field(default='', description='列名称')
column_comment: str | None = Field(default='', description='列描述')
column_type: str = Field(default='varchar(255)', description='列类型')
column_length: str | None = Field(default='', description='列长度')
column_default: str | None = Field(default='', description='列默认值')
is_pk: bool = Field(default=False, description='是否主键(True是 False否)')
is_increment: bool = Field(default=False, description='是否自增(True是 False否)')
is_nullable: bool = Field(default=True, description='是否允许为空(True是 False否)')
is_unique: bool = Field(default=False, description='是否唯一(True是 False否)')
python_type: str = Field(default='str', description='python类型')
python_field: str = Field(default='', description='python字段名')
is_insert: bool = Field(default=True, description='是否为插入字段(True是 False否)')
is_edit: bool = Field(default=True, description='是否编辑字段(True是 False否)')
is_list: bool = Field(default=True, description='是否列表字段(True是 False否)')
is_query: bool = Field(default=True, description='是否查询字段(True是 False否)')
query_type: str | None = Field(default=None, description='查询方式(等于、不等于、大于、小于、范围)')
html_type: str | None = Field(default='input', description='显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)')
dict_type: str | None = Field(default='', description='字典类型')
sort: int = Field(default=0, description='排序')
table_id: int = Field(default=0, description="归属表编号")
column_name: str = Field(default="", description="列名称")
column_comment: str | None = Field(default="", description="列描述")
column_type: str = Field(default="varchar(255)", description="列类型")
column_length: str | None = Field(default="", description="列长度")
column_default: str | None = Field(default="", description="列默认值")
is_pk: bool = Field(default=False, description="是否主键(True是 False否)")
is_increment: bool = Field(default=False, description="是否自增(True是 False否)")
is_nullable: bool = Field(default=True, description="是否允许为空(True是 False否)")
is_unique: bool = Field(default=False, description="是否唯一(True是 False否)")
python_type: str = Field(default="str", description="python类型")
python_field: str = Field(default="", description="python字段名")
is_insert: bool = Field(default=True, description="是否为插入字段(True是 False否)")
is_edit: bool = Field(default=True, description="是否编辑字段(True是 False否)")
is_list: bool = Field(default=True, description="是否列表字段(True是 False否)")
is_query: bool = Field(default=True, description="是否查询字段(True是 False否)")
query_type: str | None = Field(
default=None, description="查询方式(等于、不等于、大于、小于、范围)"
)
html_type: str | None = Field(
default="input",
description="显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)",
)
dict_type: str | None = Field(default="", description="字典类型")
sort: int = Field(default=0, description="排序")
class GenTableColumnOutSchema(GenTableColumnSchema, BaseSchema):
"""
业务表字段输出模型
"""
model_config = ConfigDict(from_attributes=True)
super_column: str | None = Field(default='0', description='是否为基类字段(1是 0否)')
super_column: str | None = Field(default="0", description="是否为基类字段(1是 0否)")
class GenTableSchema(BaseModel):
"""代码生成业务表更新模型(扩展聚合字段)。
- 聚合:`columns`字段包含字段列表;`pk_column`主键字段;子表结构`sub_table`。
"""
"""代码生成业务表基础模型(创建/更新共享字段)。
- 说明:`params`为前端结构体,后端持久化为`options`的JSON。
"""
model_config = ConfigDict(from_attributes=True)
table_name: str = Field(..., description='表名称')
table_comment: str | None = Field(default=None, description='表描述')
class_name: str | None = Field(default=None, description='实体类名称')
package_name: str | None = Field(default=None, description='生成包路径')
module_name: str | None = Field(default=None, description='生成模块名')
business_name: str | None = Field(default=None, description='生成业务名')
function_name: str | None = Field(default=None, description='生成功能名')
sub_table_name: str | None = Field(default=None, description='关联子表的表名')
sub_table_fk_name: str | None = Field(default=None, description='子表关联的外键名')
parent_menu_id: int | None = Field(default=None, description='所属父级分类,生成页面时候生成菜单使用')
table_name: str = Field(..., description="表名称")
table_comment: str | None = Field(default=None, description="表描述")
class_name: str | None = Field(default=None, description="实体类名称")
package_name: str | None = Field(default=None, description="生成包路径")
module_name: str | None = Field(default=None, description="生成模块名")
business_name: str | None = Field(default=None, description="生成业务名")
function_name: str | None = Field(default=None, description="生成功能名")
sub_table_name: str | None = Field(default=None, description="关联子表的表名")
sub_table_fk_name: str | None = Field(default=None, description="子表关联的外键名")
parent_menu_id: int | None = Field(
default=None, description="所属父级分类,生成页面时候生成菜单使用"
)
description: str | None = Field(default=None, max_length=255, description="描述")
columns: list['GenTableColumnOutSchema'] | None = Field(default=None, description='表列信息')
columns: list["GenTableColumnOutSchema"] | None = Field(default=None, description="表列信息")
@field_validator('table_name')
@field_validator("table_name")
@classmethod
def table_name_update(cls, v: str) -> str:
"""更新表名称"""
if not v:
raise ValueError('表名称不能为空')
raise ValueError("表名称不能为空")
return v
class GenTableOutSchema(GenTableSchema, BaseSchema):
"""业务表输出模型(面向控制器/前端)。
"""
"""业务表输出模型(面向控制器/前端)。"""
model_config = ConfigDict(from_attributes=True)
pk_column: GenTableColumnOutSchema | None = Field(default=None, description='主键信息')
sub_table: GenTableSchema | None = Field(default=None, description='子表信息')
sub: bool | None = Field(default=None, description='是否为子表')
pk_column: GenTableColumnOutSchema | None = Field(default=None, description="主键信息")
sub_table: GenTableSchema | None = Field(default=None, description="子表信息")
sub: bool | None = Field(default=None, description="是否为子表")
@dataclass
class GenTableQueryParam:
"""代码生成业务表查询参数
- 支持按`table_name`、`table_comment`进行模糊检索(由CRUD层实现like)。