如何使用散景服务设置自定义CSS

时间:2018-02-18 04:32:54

标签: python css widget bokeh

如果我通过css_classes投放我的应用,如何通过bokeh serve --show将css属性分配给分配给小部件的自定义类?

from bokeh.models import Button
button = Button(label="Press Me", css_classes=['myclass'])
curdoc().add_root(button)

3 个答案:

答案 0 :(得分:2)

如果您不介意使用html模板,一旦定义了css类,就可以在css文件中设置它们的样式。 (如果你想在python中包含css样式,这个答案对你没有帮助)

这可以内联或包含外部css文件包含在html文档中。散景库中有一些例子(见下面的链接)。

文档中描述的散景应用程序文件夹结构:https://bokeh.pydata.org/en/latest/docs/user_guide/server.html#directory-format

在此处查看示例: https://github.com/bokeh/bokeh/tree/master/examples/app/gapminder

这是另一个使用外部css的应用程序: https://gist.github.com/anthonydouc/c8571f0a2f9aa8415bd566e1ac2ba237

答案 1 :(得分:0)

好的,我已经走到了这一步:

import os
from bokeh.plotting import curdoc
from bokeh.models import Button
from jinja2 import Environment, FileSystemLoader

button = Button(label="Press Me", css_classes=['myclass'])
z = curdoc()
env = Environment(loader=FileSystemLoader(os.getcwd()))
z.template = env.get_template('file.html')
z.add_root(button)

但我强烈认为应该有比这更简单的东西。 @bigreddot,你能给我一个线索吗?

答案 2 :(得分:0)

这是一个简单的小解决方法,直到bokeh维护者开始为标记小部件或类似的东西添加链接类:

header = Div(text="<link rel='stylesheet' type='text/css' href='myapp/static/mycss.css'>")
layout = column(header, other_content)
curdoc().add_root(layout)

请注意,您必须在目录模式下运行该应用程序,并且css文件应位于应用程序目录内名为static的文件夹中,但您无需摆弄任何模板或其他内容。