Furthermore, the JS API only provides simple dataset access. For example, it cannot perform SQL queries.
The DSS custom web apps provide a Python backend that can be very useful to process and aggregate dataset in the backend rather than in the browser.
It enables you to access data that would be too large to process in your browser, gives you access to the pandas library to filter and/or aggregate your data, or basically anything you could do in Python.
Then we will go through a slightly more complex example (display top film directors in San Francisco!) .
Open a new web app and click on the Python tab and click on Enable python backend link.
To define a backend entry point that will execute the
first_call function, we use the
app.route decorator before the function declaration:
first_call function was created with a code example to read on dataset, let’s replace it for now with a simpler version that will return fake data. This way we can quickly test that everything is in place to communicate with the frontend.
We then use the jQuery function
$.getJSON to call and retrieve the response of the function
The URL is passed as first argument of the $.getJSON function. The second argument is the function that will handle the dictionary returned by the
This is nice, we requested the backend and printed the answer. But this is not very useful, let’s do data processing with the backend.
Let’s build our first interactive app with a python backend.
We are going to construct a small application that shows directors and the number of films they realized in San Francisco. We will order directors by the number of films they realized in San Francisco hence showing Film directors that love the most San Francisco!
Retrieve the dataset on San Francisco film locations and upload it in the studio.
Then, import the Bootstrap library in your web app (from the “Settings” tab):
to_json()to automatically convert our dataframe to JSON.
In the console, you can see that your Pandas dataframe has been properly return in the form of a json dictionary:
You should know see a classy table in the output of our insight:
We would like to show or hide the table on demand of the user.