[파이썬] web2py에서의 실시간 대시보드

소개

실시간 대시보드는 웹 응용 프로그램에서 실시간 데이터를 시각적으로 나타내는 강력한 도구입니다. 이는 빠르게 변화하는 데이터를 모니터링하고 신속하게 의사 결정을 내리는 데 도움이 됩니다. web2py는 파이썬 기반의 웹 프레임워크로, 실시간 대시보드를 구축하는 데 매우 유용한 기능을 제공합니다.

필요한 패키지 설치

web2py에서 실시간 대시보드를 구축하기 위해 몇 가지 패키지를 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 필요한 패키지를 설치하세요.

pip install pygal
pip install pygal_maps_world

실시간 데이터 소스

실시간 대시보드를 표시하기 위해 실시간 데이터 소스가 필요합니다. 이 예제에서는 간단한 동적 데이터를 생성하는 방법을 소개하겠습니다. 다음 코드를 dashboard.py 파일에 작성하세요.

import time
import random

def generate_data():
    data = random.randint(0, 100)
    time.sleep(1)
    return data

위 코드는 1초마다 0에서 100 사이의 임의의 숫자를 생성하는 generate_data 함수를 정의합니다. 이 함수는 실제 데이터 소스에서 데이터를 가져오는 대신 실습용으로 사용됩니다.

실시간 대시보드 구축

web2py에서 실시간 대시보드를 구축하기 위해 dashboard.py 파일을 생성하세요. 다음 코드를 추가하여 기본적인 대시보드를 생성합니다.

import datetime
import pygal

def index():
    line_chart = pygal.Line()
    line_chart.title = '데이터 변화 추적'
    line_chart.x_labels = [str(datetime.datetime.now().strftime('%H:%M:%S'))]

    while True:
        data = generate_data()
        line_chart.add('데이터', data)
        chart = line_chart.render(is_unicode=True)
    
        response.headers['Content-Type'] = 'image/svg+xml'
        return chart

위 코드는 index 함수에서 pygal 패키지를 사용하여 실시간 변화를 추적하는 선 그래프를 생성합니다. line_chart 객체에 제목과 x축 레이블을 설정하고, 반복문을 사용하여 실시간으로 데이터를 추가합니다. 각 iteration마다 대시보드를 렌더링하고 SVG 이미지 형식으로 반환합니다.

대시보드 실행

실시간 대시보드를 실행하기 위해 web2py 애플리케이션을 실행해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 web2py 서버를 시작하세요.

python web2py.py -S your_app_name -M -R your_dashboard.py

위 명령에서 your_app_name은 web2py 애플리케이션의 이름을 나타내며, your_dashboard.py는 앞에서 작성한 dashboard.py 파일의 경로입니다. 이제 웹 브라우저에서 http://localhost:8000/your_app_name/your_dashboard/index로 이동하면 실시간 대시보드를 확인할 수 있습니다.

결론

web2py는 실시간 대시보드를 구축하는 데 매우 유용한 도구입니다. 위 예제를 사용하여 기본적인 실시간 대시보드를 생성할 수 있으며, 필요에 따라 개선될 수 있습니다. 실시간 데이터 소스 및 대시보드의 디자인을 자유롭게 변경하여 웹 애플리케이션에 최적화된 실시간 대시보드를 개발해보세요.