ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Django Builder JSON项目描述规范完整指南:一次搞懂项目、App、模型与关系的全部配置

2026/8/27 17:27:19 拓冰建站 浏览量
Django Builder JSON项目描述规范完整指南:一次搞懂项目、App、模型与关系的全部配置 Django Builder JSON项目描述规范完整指南一次搞懂项目、App、模型与关系的全部配置【免费下载链接】django_builderDjango Builder Site项目地址: https://gitcode.com/gh_mirrors/dj/django_builderDjango Builder 是一款用 JSON 文件描述即可生成完整 Django 项目的开源工具。这篇文章作为 Django Builder JSON 项目描述规范的参考带你一次搞懂项目Project、App、模型Model与关系Relationship的全部配置从 4 个配置层级到每个字段选项再到一条命令打包出可运行的项目 Django Builder 编辑器上方可视化配置 App 与模型下方即时生成 models.py、views.py、forms.py一、JSON 规范的 4 层结构整个规范非常清晰只有 4 层嵌套层级JSON 键对应 Django 概念① 项目name/description/htmx/postgressettings.py、requirements.txt② 应用apps数组中的每一项一个 Django App如app1③ 模型App 下models数组中的每一项models.py 中的一个 Model 类④ 字段与关系模型下的fields和relationships具体字段、外键等完整的数据结构定义可参考类型声明文件 types.ts 和核心实现 api.ts。二、第一层项目级配置项目层位于 JSON 根节点控制生成什么样的项目配置项类型说明name字符串项目名将作为目录名description字符串项目描述会写入生成的代码注释version数字Django 版本2 / 3 / 4缺省为 4htmx布尔是否启用 HTMX 模板自动生成django_htmx中间件postgres布尔是否使用 PostgreSQL 数据库channels布尔是否启用 Django ChannelsWebSocket 支持pillow布尔是否安装 Pillow图片处理依赖一个最简项目只有一项配置即可运行仓库提供了两个现成样例基础版example-project.jsonPostgreSQL 版example-project-postgres.json三、第二层App 与模型apps是一个数组每个 App 对应生成项目里的一个应用目录{ name: DjangoProject, description: A Django Project with great potential, htmx: false, postgres: false, apps: [ { name: DjangoApp1, models: [ /* 模型定义放这里 */ ] } ] }每个 App 下的models数组就是数据库模型的图纸。每个模型除了name还包含两个核心数组fields—— 普通数据字段relationships—— 外键等关系字段四、第三层字段fields怎么配添加字段Name Field Type args 三要素与 models.py 中的写法一一对应每个字段由 3 个属性组成属性示例说明namefield1字段名即 Python 属性名typeCharField字段类型取 Django 字段类的短名argsmax_length30完整参数串原样拼进生成的代码常用字段类型完整清单见 api.tsCharField·TextField·BooleanField·IntegerField·DecimalField·DateField·DateTimeField·EmailField·URLField·SlugField·UUIDField·JSONField·ImageField…当项目启用postgres: true时还可以使用 PostgreSQL 专属类型ArrayField、HStoreField、CICharField、DateTimeRangeField等区间字段范围类字段会标记is_postgres_range。小技巧args里写editableFalse的字段会被识别为只读字段不会出现在生成的表单里——样例文件中的created/last_updated时间戳字段就是这么实现的。五、第三层关系relationships怎么配添加关系支持 ForeignKey、OneToOneField、ManyToManyField 三种类型关系配置在结构上与字段类似多了一个to指明指向谁属性示例说明namerelationship1关系属性名typeForeignKey仅支持 3 种ForeignKey/OneToOneField/ManyToManyFieldtoauth.User目标模型应用名.模型名格式argsnullTrue,on_deletemodels.CASCADE关系参数to目前支持指向 Django 内置模型内置模型清单定义在 api.ts 的BuiltInModelTypes中auth.User/auth.AbstractUser/auth.AbstractBaseUser/auth.Group⚠️ 注意to引用的必须是内置模型或已定义模型否则渲染时会抛出Unsupported relationship to ...错误——这是新手最常踩的坑。六、一条命令JSON → 可运行项目配置完成后用 CLI 的render命令即可打包出完整项目。解析逻辑在 cli.ts 中实现./bin/django-builder example_projects/example-project.json DjangoProject.tar tar -xvf DjangoProject.tar cd DjangoProject pip install -r requirements.txt python manage.py migrate python manage.py runserver生成的项目包含完整的 views、forms、urls、admin、序列化器、REST API 和 pytest 测试同一份 JSON 描述自动渲染出的 API 路由、序列化器、管理后台与测试文件生成的 Python 代码由模板渲染核心模板位于 models.ts模板机制实现在 rendering.ts。七、进阶把现有 models.py 导入规范如果你已有写好的 Django 模型ModelImporter可以解析models.py源码并还原成规范的模型结构识别字段类型、外键关系、Meta.abstract等实现在 importer.ts —— 也就是说这套 JSON 规范既能由 JSON 生成代码也能作为代码到结构的中间表示。八、常见问题速查Q1字段类型写错会怎样渲染时直接报错Unsupported field type XXX请对照FieldTypes清单检查拼写短名即可如CharField而非django.db.models.CharField。Q2args里参数之间怎么分隔用英文逗号分隔如nullTrue,on_deletemodels.CASCADE它会原样嵌入生成的models.py语法即 Django 标准写法。Q3为什么生成的是 tar 包而不是目录Renderer.tarballContent()先打包再输出解压后即可运行天然适合 CI 与模板分发场景。总结Django Builder 的 JSON 规范本质是一张项目蓝图项目层声明技术选型Django 版本、HTMX、PostgreSQL、ChannelsApp 层划分应用边界模型层用fieldsrelationships两张表描述数据结构一条render命令蓝图变成可运行的完整 Django 工程。掌握这 4 层结构后无论是手工编写还是程序化生成配置你都能快速驾驭这个声明式 Django 脚手架。【免费下载链接】django_builderDjango Builder Site项目地址: https://gitcode.com/gh_mirrors/dj/django_builder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考