koxudaxi/datamodel-code-generatordatamodel-code-generator是一款代码生成工具,能够从OpenAPI规范、JSON Schema、JSON、YAML、CSV等多种数据源生成Python数据模型,支持Pydantic v1/v2模型、dataclasses.dataclass、typing.TypedDict及msgspec.Struct等多种输出类型。该工具广泛应用于API客户端开发、数据验证、配置文件处理等场景,帮助开发者快速生成类型安全的数据模型代码,减少手动编码工作量。
pydantic.BaseModel(v1版本)pydantic_v2.BaseModel(v2版本)dataclasses.dataclasstyping.TypedDictmsgspec.Structbashdocker pull koxudaxi/datamodel-code-generator
将本地数据源文件(如OpenAPI规范文件)挂载到容器中,生成数据模型代码:
bash# 示例:从当前目录的api.yaml生成model.py docker run --rm -v $(pwd):/app koxudaxi/datamodel-code-generator \ --input /app/api.yaml \ --output /app/model.py
参数说明:
--rm:容器退出后自动删除-v $(pwd):/app:将当前目录挂载到容器内的/app目录--input /app/api.yaml:指定输入文件路径(容器内路径)--output /app/model.py:指定输出文件路径(容器内路径)需启用HTTP支持(镜像已预装相关依赖),从远程URL获取数据源并生成模型:
bashdocker run --rm -v $(pwd):/app koxudaxi/datamodel-code-generator \ --url [***] \ --output /app/remote_model.py
指定生成dataclasses.dataclass类型的模型:
bashdocker run --rm -v $(pwd):/app koxudaxi/datamodel-code-generator \ --input /app/schema.json \ --output /app/dataclass_model.py \ --output-model-type dataclasses.dataclass
创建docker-compose.yml文件,定义生成任务:
yamlversion: '3' services: generate-model: image: koxudaxi/datamodel-code-generator volumes: - ./:/app command: > --input /app/api.yaml --output /app/model.py --snake-case-field # 将字段名转换为蛇形命名 --use-field-description # 从 schema 描述生成字段文档字符串
运行生成命令:
bashdocker-compose run --rm generate-model
| 选项 | 描述 |
|---|---|
--input INPUT | 输入文件/目录路径(默认:标准输入) |
--output OUTPUT | 输出文件路径(默认:标准输出) |
--url URL | 远程输入文件URL(使用时忽略--input) |
--output-model-type TYPE | 指定输出模型类型(如pydantic_v2.BaseModel) |
--snake-case-field | 将驼峰式字段名转换为蛇形命名 |
--use-field-description | 使用schema描述作为字段文档字符串 |
--http-headers HEADERS | 为远程URL请求设置HTTP头(如认证信息) |
--base-class CLASS | 指定自定义基类(默认:pydantic.BaseModel) |
完整命令选项可通过以下命令查看:
bashdocker run --rm koxudaxi/datamodel-code-generator --help
多个开源项目使用该工具生成数据模型,包括:
MIT许可证,详见项目仓库。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务