Sign up to take part
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
Hi,
I recently developped a Web App on Bokeh. On it, I added a button to save the result.
Ideally, I would like save the HTML result in a folder to be able to download it. Unfortunately, on notebook, it works well but not in WebApp : it's like the folder was not found ...
In plan B, I saved the result as a static insight and it works well but I have another problem : I don't know how I can download it.
I take all your suggestion,
Thanks in advance !
Hi @CGB,
It should be possible to write to a managed folder from a webapp. Here's an example Bokeh webapp where I write to a file every time a text input is changed:
import dataiku
from bokeh.io import curdoc
from bokeh.layouts import row, widgetbox
from bokeh.models.widgets import TextInput
folder = dataiku.Folder("MY_FOLDER")
text = TextInput(title="Text")
# Write the title to a file in the managed folder on update
def update_text(attrname, old, new):
with folder.get_writer("webapp.txt") as f:
f.write(text.value.encode())
text.on_change("value", update_text)
inputs = widgetbox(text)
curdoc().add_root(row(inputs))
curdoc().title = "Text"
Could you please share the code of the webapp, the error message you're getting, and the code of the notebook where it's working?
Thanks,
Zach
Hi @CGB,
It should be possible to write to a managed folder from a webapp. Here's an example Bokeh webapp where I write to a file every time a text input is changed:
import dataiku
from bokeh.io import curdoc
from bokeh.layouts import row, widgetbox
from bokeh.models.widgets import TextInput
folder = dataiku.Folder("MY_FOLDER")
text = TextInput(title="Text")
# Write the title to a file in the managed folder on update
def update_text(attrname, old, new):
with folder.get_writer("webapp.txt") as f:
f.write(text.value.encode())
text.on_change("value", update_text)
inputs = widgetbox(text)
curdoc().add_root(row(inputs))
curdoc().title = "Text"
Could you please share the code of the webapp, the error message you're getting, and the code of the notebook where it's working?
Thanks,
Zach
Hi @ZachM,
Thanks a lot for your answer, it helps me to find a perfect solution in my case.
I share the final code used :
import dataiku
from bokeh.resources import CDN
from bokeh.embed import file_html
dataiku.Folder("MY_FOLDER")
my_report = file_html(graph_to_save, CDN, "MY_TITLE")
with open(folder.get_path()+'/MY_FILE.html',"w+") as f:
f.write(my_report)
And just by curiosity, someone knows if its possible to download statit insight ?
You can download a static insight by first adding it to a dashboard, and then exporting the dashboard to PDF or to an image.
Thanks @ZachM