在Django中构建交互式分析仪表板
#python #django #canvasjs #charts

Django是一个强大的Python Web框架,使构建Web应用程序和仪表板变得轻而易举。有一些由Django构建的开源仪表板,配备了现代UI套件,开发人员可以在Django应用中创建分析仪表板。在本文中,让我们探索如何使用Bootstrap,CanvasJS Python Charts和其他一些工具在Django构建美丽的仪表板。

Django Dashboard using CanvasJS Python Charts

项目设置

创建一个新的Django项目。并在项目中创建一个新应用。

django-admin startproject dashboard
python manage.py startapp charts

创建视图

在“ views.py”图表应用中创建一个新文件。在此文件中,我们将定义将呈现仪表板的视图。这是一个示例视图,该视图呈现一个称为index.html
的模板

from django.shortcuts import render

def dashboard(request):
    return render(request, 'index.html')

创建模板

在“图表/模板”目录中创建一个名为dashboard.html的新文件。使用Bootstrap定义仪表板的布局。

<div class="container-fluid">
    <div class="row">
        <nav class="col-md-2 d-none d-md-block bg-light sidebar">
            <!-- Sidebar content goes here -->
        </nav>

        <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
            <!-- Main content goes here -->
        </main>
    </div>
</div>

将图表添加到仪表板

canvasjs是一个强大的图表库,可让您为仪表板创建交互式图表。要将Canvasjs图表添加到项目中,请下载库并将其包含在模板中。

  • 从Canvasjs网站下载图书馆。
  • 将文件提取到“图表/静态”文件夹。
  • 在模板中包含canvasjs.min.js。
<script src="{% static canvasjs.min.js' %}"></script>

创建图表

现在,该canvasjs包含在模板中,您可以开始创建不同的图表,例如行,列,派等。以在仪表板中显示它们。

/* index.html */
<div id="chartContainer" style="width: 100%; height: 360px;"></div>
<script>
    window.onload = function () {
        var chart = new CanvasJS.Chart("chartContainer", {
            title:{
                text: "Column Chart"
            },
            data: [{
                dataPoints: {{ datapoints | safe }}
        });
        chart.render();
    }
</script>

更新视图以返回图表的数据。

/* views.py */
from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader

def index(request):
    datapoints= [
        { "label": "Jan", "y": 10000 },
        { "label": "Feb", "y": 30162 },
        { "label": "Mar", "y": 26263 },
        { "label": "Apr", "y": 18394 },
        { "label": "May", "y": 18287 },
        { "label": "Jun", "y": 28682 },
        { "label": "Jul", "y": 31274 },
        { "label": "Aug", "y": 33259 },
        { "label": "Sep", "y": 25849 },
        { "label": "Oct", "y": 24159 },
        { "label": "Nov", "y": 32651 },
        { "label": "Dec", "y": 31984 }
    ]
    return render(request, 'index.html', { "datapoints" : datapoints })

自定义仪表板

现在,您已经在仪表板上添加了一个图表,添加更多图表并自定义图表的外观和感觉以匹配仪表板。您可以更改图表的所有文本内容的颜色和字体家庭,以将其与仪表板的主题匹配。

github链接:https://github.com/vishwas-r/Django-Dashboard-using-CanvasJS-Python-Charts