在 django 中构建仪表板

Posted

技术标签:

【中文标题】在 django 中构建仪表板【英文标题】:Building dashboards in django 【发布时间】:2011-12-31 23:28:05 【问题描述】:

我有一个 django 应用程序,我想向我的用户显示一些图形数据可视化。我正在寻找一个易于使用的包,可以让我添加图表和小部件。

我想要构建的小部件是一种速度计刻度盘,一端为红色,另一端为绿色。当用户在一天中完成他们的工作时,图形/小部件会自行调整。表盘从红色变为绿色。

我还想要一个 S 曲线图,显示相对于计划完成的累计工作量。这是一种 x/y 线图。

我的问题是:实现起来有多容易?是否有任何加载项库或包已经这样做了?我试图让我的整个应用程序保持开源。我见过几个订阅服务可以做这种事情,但我无法承受成本。

我不介意使用 ajax 或 jquery 来实现这样的事情,但我想要最优雅和可维护的解决方案。

关于如何处理这个项目的任何建议或示例?

【问题讨论】:

【参考方案1】:

现在有很多好的 javascript 库,但都需要一些努力来学习如何使用。我还没有找到一个真正易于使用的,我猜是因为每个人都想要不同的东西。我的一般经验是,你在学习它们上付出的努力越多,你得到的就越多。

Google 有仪表:http://code.google.com/apis/chart/interactive/docs/gallery/gauge.html 还有

http://www.flotcharts.org/ http://philogb.github.com/jit/ http://www.highcharts.com/ http://www.jqplot.com/

或者真正控制: http://mbostock.github.com/protovis/

【讨论】:

Google 在他们的 AJAX API 中也提供了一些不错的图表等:code.google.com/apis/ajax/playground/#annotated_time_line 是的,代码游乐场也让定制变得更容易! 更新:如果您还没有遇到过 D3.js,请查看它。【参考方案2】:

首先,请参阅 djangopackages 上的以下网格 (https://www.djangopackages.com/grids/g/dashboard-applications/)。

不确定这是否正是所要求的,但您可以查看django-dash (https://pypi.python.org/pypi/django-dash)。

它允许每个用户制作自己的仪表板(通过可用的插件)。这些仪表板可以公开。

一些截图(http://pythonhosted.org/django-dash/#screenshots)。

它是模块化和基于插件的,因此您需要为每个特定功能制作一个插件和小部件(在这种特殊情况下 - 速度计插件和它的小部件)。每个插件/小部件在渲染时都可以包含自己的 JS/CSS。

请参阅以下图表使用示例:

D3.js 集成示例 (https://github.com/barseghyanartur/django-dash/tree/master/example/example/d3_samples)。 Polychart2.js 集成示例 (https://github.com/barseghyanartur/django-dash/blob/master/example/example/bar/)。

【讨论】:

【参考方案3】:

protovis 不再处于积极开发中,但他们开始了一个新项目:http://d3js.org/

【讨论】:

【参考方案4】:

您可以从以下套餐中进行选择: https://www.djangopackages.com/search/?q=dash

【讨论】:

以上是关于在 django 中构建仪表板的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义仪表板中显示 django 角色和权限

django-admin-tools 仪表板在 IE8 中不可拖动

Django 视图链接/重定向最佳实践

Django Grappelli 用户组条件仪表板

django 管理模板中 block.super 之后的“仪表板”字是啥

登录后 Django 重定向到仪表板