跳转到主要内容

这是一个辣味肉丸,可以从您的django模型中直接提供新鲜热腾腾的实体关系图。

项目描述

Documentation Status travis Code Climate coveralls

这是一个辣味肉丸,可以从您的django模型中直接提供新鲜热腾腾的实体关系图。

向您的项目添加面条

安装一些面条

pip install django-spaghetti-and-meatballs

"django_spaghetti"添加到您的INSTALLED_APPS设置中,如下所示

INSTALLED_APPS = [
    ...
    'django_spaghetti',
]

配置您的酱料

django-spaghetti-and-meatballs从您的项目settings.py文件中的SPAGHETTI_SAUCE变量中获取一些选项,使其更加香辣

SPAGHETTI_SAUCE = {
    'apps': ['auth', 'polls'],
    'show_fields': False,
    'exclude': {'auth': ['user']},
}

在上面的字典中,使用了以下设置

  • apps 是您想要在图中显示的应用程序列表。如果它不在其中,它将不会被看到

  • show_fields 是一个布尔值,表示是否应在图中显示字段名称,或者只显示在任何地方。对于小图,您可以将其设置为True 以显示字段,但随着模型数量的增加,它将变得杂乱。

  • exclude 是一个字典,其中每个键都是一个 app_label,该键对应的项是要在图中隐藏的模型名称。

如果它没有按预期工作,请确保您的应用程序标签和模型名称都是 小写

在urls文件中提供您的盘子

一旦您配置了您的酱料,请确保在您的 urls.py 中提供一份面条,如下所示

urlpatterns += patterns('',
    url(r'^plate/', include('django_spaghetti.urls')),
)

一个样品托盘

以下是一个示例图像,展示了来自django-reversiondjango-notifications应用程序以及Django内置的auth模型的连接。

彩色边缘表示外键关系,箭头指向定义模型到相关模型的方向,而灰色边缘表示多对多关系。不同的颜色代表不同的Django应用程序,当关系在不同应用程序之间链接时,边缘将用渐变色表示。

https://cloud.githubusercontent.com/assets/2173174/9053053/a45e185c-3ab2-11e5-9ea0-89dafb7ac274.png

将鼠标悬停在模型上,将弹出一个显示以下信息的窗口

  • 模型名称

  • 应用程序标签

  • 模型的docstring

  • 每个字段的列表,包括其字段类型及其帮助文本(如果已定义)。唯一字段的名字下有下划线。

这是用sauce构建的

SPAGHETTI_SAUCE = {
    'apps': ['auth', 'notifications', 'reversion'],
    'show_fields': False,
}

一个复杂的生活演示

要查看一个复杂的示例,其中django-spaghetti-and-meatballs真正闪耀,请查看为Aristotle Metadata Registry构建的实时版本。

测试和开发

我喜欢将我的开发环境在docker中隔离。你也可以这样做。如果你想在本地上安装poetry,你可以跳过这一部分。

  • 使用Python和Poetry构建容器 - docker build . -t spaghetti

  • 运行开发容器 - docker run -v “$(realpath .)”:/site -w /site -p 8000:8000 -it –rm spaghetti bash

  • 安装依赖关系 - poetry install

  • 打开poetry shell - poetry shell

  • 运行服务器 - django-admin runserver 0.0.0.0:8000

如果你导航到127.0.0.1:8000,你应该会看到演示应用程序。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

django-spaghetti-and-meatballs-0.4.2.tar.gz (12.2 kB 查看哈希值)

上传时间

构建分布

django_spaghetti_and_meatballs-0.4.2-py3-none-any.whl (13.9 kB 查看哈希值)

上传时间 Python 3

由以下支持