
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),僅供參考