반응형
Django-dashing의 커스텀 대시보드를 통해 원하는 대시보드 생성이 가능합니다.
커스텀 대시보드의 생성은 아래 링크에서 확인이 가능합니다.
2017/01/30 - [Programming/Python] - 2. Django-dashing 커스텀 대시보드 만들기
커스텀 위젯의 추가로 다양한 정보를 대시보드에 추가할 수 있습니다.
1. 커스텀 위젯 생성
커스텀 위젯을 생성하기 위해 먼저 widgets.py 파일을 생성합니다.
Django Dashing이 제공하는 기본 위젯을 상속받아 새로운 위젯 생성이 가능합니다.
기본적으로 제공되는 위젯을 임포트하고 내용을 작성하면 됩니다.
# -*- encoding: utf-8 -*- from dashing.widgets import NumberWidget from random import randint users = randint(50, 100) class MyCustomWidget(NumberWidget): title = 'New Users' def get_value(self): global users users += 1 return users def get_detail(self): global users return '{} actives'.format(users * 2) def get_more_info(self): global users return '{} fakes'.format(users * 3)
기본적으로 제공되는 NumberWidget을 상속받아서 메소드 오버라이딩을 통해 새롭게 정의했습니다.
원하는 형태로 작성하고 url.py을 다음 내용으로 변경합니다.
from django.conf.urls import include, url from django.contrib import admin from django.views.generic.base import RedirectView from .view import CustomDashboard from .widgets import MyCustomWidget dashboard_patterns = [ url(r'dashboard/$', CustomDashboard.as_view()), url(r'dashboard/widgets/new_users_widget/', MyCustomWidget.as_view(), name='widget_new_users_widget'), url(r'^$', RedirectView.as_view(url='dashboard/'), name='index'), ] urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'', include(dashboard_patterns), name='index'), ]
별도의 url 패턴을 생성해서 dashboard와 관련된 내용을 추가하고 위젯 역시 패턴에 추가합니다.
추가적인 커스텀 위젯도 계속 등록이 가능합니다.
다음으로 dashing-config.js에 커스텀 위젯을 추가합니다.
dashboard.addWidget('degree_widget', 'Number', {
getData: function () { var self = this; Dashing.utils.get('new_users_widget', function(scope) { $.extend(self.scope, scope); }); }, interval: 5000 });
대시보드의 addWidget()을 호출하면 쉽게 커스텀 위젯 추가가 가능합니다.
변경 내용을 저장하고 웹서버를 다시 시작합니다.
python manage.py runserver
아래와 같이 표시되면 정상적으로 커스텀 위젯이 반영된 것입니다.
좌측 상단의 위젯이 추가한 커스텀 위젯입니다.
커스텀 위젯으로 다양한 내용을 대시보드에 추가할 수 있습니다.
반응형
'Programming > Python' 카테고리의 다른 글
파이썬에서 JSON 데이터 형식 처리 (0) | 2019.10.24 |
---|---|
파이썬 정규표현식으로 쉼표(콤마, Comma)가 있는 숫자 찾기 (0) | 2018.09.14 |
2. Django-dashing 커스텀 대시보드 만들기 (0) | 2017.01.30 |
1. Django-dashing으로 IoT 대시보드 생성 (2) | 2017.01.24 |
파이썬 가변인자 함수 사용 (0) | 2016.12.28 |