无法通过使用 CherryPy 框架将 Plotly table 渲染到 html - table 已成功创建并保存到 temp-plot.html
Cannot render Plotly table to html via using CherryPy framework - table is created successfully and saved to temp-plot.html
我已经使用 pandas df 格式的数据成功创建了 Plotly table。
然而,在到达我的路线时,table 被创建,但存储在 temp-plot.html
文件中,我希望它呈现的页面仅将 temp-plot.html
显示为文本, 但没有别的。
我知道 table 已正确创建,因为如果我打开 html 文件,我会看到 table 和我的数据。
我不想使用模板语言 (Jinja2),因为不幸的是,这个应用程序没有在任何地方使用它,我不想做很多重构。
我想简单地 render
或 open
我的 html 文件,但也发送那个情节。
我试过将数据作为参数发送给 open()
,但它说它只支持字符串。
我试过了render()
,但是cherryPy好像没有那个方法
@cherrypy.expose()
def my_table(self):
dbtable = db.get_table('v_data')
with db.session_scope('my_table()') as session:
query = <get all my data from this table>
df = pd.DataFrame.from_dict(query)
trace = go.Table(
header=dict(values=list(df.columns),
fill=dict(color='#C2D4FF'),
align=['left'] * 5),
cells=dict(values=[my_headers],
fill=dict(color='#F5F8FF'),
align=['left'] * 5))
data = [trace]
sp_table = plot(data)
return sp_table
我希望 table 呈现到 html 页面,但我得到 html 页面的文本标题,但没有错误。由 plotly open 生成的 html 页面显示 table 就好了。
您应该为 plot
函数使用 div
输出格式...并阅读更多内容 their docs。但是要回答您的问题,关于如何提供生成的 html,您可以使用 cherrypy.lib.static.serve_file
提供文件
import os.path
from cherrypy.lib.static import serve_file
# [...]
@cherrypy.expose()
def my_table(self):
dbtable = db.get_table('v_data')
with db.session_scope('my_table()') as session:
query = <get all my data from this table>
df = pd.DataFrame.from_dict(query)
trace = go.Table(
header=dict(values=list(df.columns),
fill=dict(color='#C2D4FF'),
align=['left'] * 5),
cells=dict(values=[my_headers],
fill=dict(color='#F5F8FF'),
align=['left'] * 5))
data = [trace]
# assuming "plot" returns the filename
# (otherwise set the `filename` arg in `plot`) and
# the file is generated in the current directory
sp_table = os.path.abspath(plot(data))
return serve_file(sp_table)
我已经使用 pandas df 格式的数据成功创建了 Plotly table。
然而,在到达我的路线时,table 被创建,但存储在 temp-plot.html
文件中,我希望它呈现的页面仅将 temp-plot.html
显示为文本, 但没有别的。
我知道 table 已正确创建,因为如果我打开 html 文件,我会看到 table 和我的数据。
我不想使用模板语言 (Jinja2),因为不幸的是,这个应用程序没有在任何地方使用它,我不想做很多重构。
我想简单地 render
或 open
我的 html 文件,但也发送那个情节。
我试过将数据作为参数发送给 open()
,但它说它只支持字符串。
我试过了render()
,但是cherryPy好像没有那个方法
@cherrypy.expose()
def my_table(self):
dbtable = db.get_table('v_data')
with db.session_scope('my_table()') as session:
query = <get all my data from this table>
df = pd.DataFrame.from_dict(query)
trace = go.Table(
header=dict(values=list(df.columns),
fill=dict(color='#C2D4FF'),
align=['left'] * 5),
cells=dict(values=[my_headers],
fill=dict(color='#F5F8FF'),
align=['left'] * 5))
data = [trace]
sp_table = plot(data)
return sp_table
我希望 table 呈现到 html 页面,但我得到 html 页面的文本标题,但没有错误。由 plotly open 生成的 html 页面显示 table 就好了。
您应该为 plot
函数使用 div
输出格式...并阅读更多内容 their docs。但是要回答您的问题,关于如何提供生成的 html,您可以使用 cherrypy.lib.static.serve_file
import os.path
from cherrypy.lib.static import serve_file
# [...]
@cherrypy.expose()
def my_table(self):
dbtable = db.get_table('v_data')
with db.session_scope('my_table()') as session:
query = <get all my data from this table>
df = pd.DataFrame.from_dict(query)
trace = go.Table(
header=dict(values=list(df.columns),
fill=dict(color='#C2D4FF'),
align=['left'] * 5),
cells=dict(values=[my_headers],
fill=dict(color='#F5F8FF'),
align=['left'] * 5))
data = [trace]
# assuming "plot" returns the filename
# (otherwise set the `filename` arg in `plot`) and
# the file is generated in the current directory
sp_table = os.path.abspath(plot(data))
return serve_file(sp_table)