Dash simple example on Django

September 30, 2018 ยท View on GitHub

from datetime import datetime as dt

from django.conf import settings from django.conf.urls import include, url

from dash import BaseDashView, Dash from dash.dependencies import Input, Output import dash_core_components as dcc import dash_html_components as html from pandas_datareader import data as web

class DashSimpleExamppleView(BaseDashView): dash_name = 'dash_simple_example'

dash = Dash()
dash.layout = html.Div([
    dcc.Dropdown(
        id='my-dropdown',
        options=[
            {'label': 'Coke', 'value': 'COKE'},
            {'label': 'Tesla', 'value': 'TSLA'},
            {'label': 'Apple', 'value': 'AAPL'}
        ],
        value='COKE'
    ),
    dcc.Graph(id='my-graph')
], style={'width': '500'})

dash.css.append_css({'external_url': 'https://codepen.io/chriddyp/pen/bWLwgP.css'})

@staticmethod
@dash.callback(Output('my-graph', 'figure'), [Input('my-dropdown', 'value')])
def update_graph(selected_dropdown_value):
    df = web.DataReader(
        selected_dropdown_value,
        'yahoo',
        dt(2017, 1, 1),
        dt.now()
    )
    return {
        'data': [{
            'x': df.index,
            'y': df.Close
        }],
        'layout': {'margin': {'l': 40, 'r': 0, 't': 20, 'b': 30}}
    }

urlpatterns = [ url(r'^dash/', include('dash.urls')), ]

if name == 'main': import os import sys

from django.core.management import execute_from_command_line

settings.configure(
    DEBUG=True,
    MIDDLEWARE_CLASSES = [],
    ROOT_URLCONF = os.path.splitext(os.path.basename(__file__))[0]
)

execute_from_command_line([sys.argv[0], 'runserver'])