Flask渲染pandas DataFrame为HTML表格时路由返回空白页怎么解决?
问题原因
- 路由参数与视图函数参数名不匹配
路由中定义的路径变量是<car_name>,但视图函数generate_display_data接收的参数名为card_name,拼写不一致会导致请求参数传递失败,如果你的Flask未开启调试模式,会直接返回空白错误页。 - Pandas的
to_html方法未调用
你传入模板的是df.to_html这个方法对象本身,并没有执行方法调用,因此无法生成对应的表格HTML代码,渲染到前端自然没有内容。 - 可选优化项:如果需要显示image列的图片,需要关闭HTML转义
默认to_html会转义HTML标签,如果你的image列要渲染为可显示的图片,需要在调用方法时添加escape=False参数。
修正后的代码
app.py 修正部分
@app.route('/<car_name>') def generate_display_data(car_name): # 修正参数名和路由变量保持一致 # code... df= pd.DataFrame(table) # 调用to_html方法生成HTML字符串,不需要渲染图片可以去掉escape=False参数 return render_template('car_info.html', tables=[df.to_html(escape=False)], header="true")
模板文件说明
你当前的car_info.html逻辑是正确的,不需要改动即可正常展示表格,如果有样式需求可以自行扩展表格相关CSS即可。
内容的提问来源于stack exchange,提问作者letsc
相关产品推荐
相关产品推荐

