You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用Django Rest Framework生成类图/架构图?90模型Django项目工具求荐

嘿,作为DRF的同好,完全懂你想要高效可视化项目架构的需求!针对你维护的这个拥有90个模型的Django 1.8 + DRF大型项目,我整理了几个靠谱的自动化工具,帮你生成模型类图/架构图:

1. Django Extensions 的 graph_models(首推!)

这是Django生态里最经典的模型可视化工具,对Django 1.8的兼容性拉满,不需要依赖DRF就能直接生成精准的模型类图,完美适配你的场景。

  • 先装依赖:pip install django-extensions pydot,另外还要装系统级的graphviz工具(比如Ubuntu用sudo apt-get install graphviz,Mac用brew install graphviz)
  • 配置项目:把'django_extensions'添加到settings.py的INSTALLED_APPS里
  • 生成全项目模型图:python manage.py graph_models -a -o project_full_models.png
  • 生成指定APP的模型图:python manage.py graph_models your_app1 your_app2 -o selected_apps_models.png

它会自动识别模型间的外键、一对一、多对多关系,每个模型的字段名、字段类型、约束都会清晰标注出来。90个模型的话,建议按APP拆分生成,避免图太拥挤。

2. Pyreverse(Pylint 附带工具)

如果你想跳出单纯的模型,生成包含DRF序列化器、视图等组件的完整架构图,Pyreverse会是很好的补充。它能分析整个项目的代码结构,生成标准UML类图。

  • 安装:pip install pylint(Pyreverse是Pylint的内置工具,装完就能用)
  • 生成模型+序列化器的类图:
    pyreverse -o png -p my_project my_project/apps/*/models.py my_project/apps/*/serializers.py
  • 要是想加上视图层,把视图文件路径也加上就行:
    pyreverse -o png -p my_project my_project/apps/*/models.py my_project/apps/*/serializers.py my_project/apps/*/views.py

生成的图会展示类的继承关系(比如模型继承models.Model,序列化器继承serializers.ModelSerializer),能帮你从代码结构层面理清DRF组件和模型的关联。

3. 结合DRF API文档的小技巧

既然你已经用Swagger做了API文档,其实可以把Swagger的API结构和模型图结合起来理解:比如先看graph_models生成的模型关系,再对照Swagger里的API端点,就能快速理清每个模型对应哪些API接口。这部分暂时没有完全自动化的工具,但对你这种熟悉DRF的用户来说,手动关联的成本很低。

总结一下:优先用graph_models搞定模型类图,需要扩展到DRF组件的话用Pyreverse,两者结合基本能覆盖你所有的可视化需求啦!

内容的提问来源于stack exchange,提问作者cegprakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:39:18