tsc*_*chm 35 python flask pandas
我正在使用Flask,但这可能适用于许多类似的框架.
我构建了一个pandas Dataframe,例如
@app.route('/analysis/<filename>')
def analysis(filename):
x = pd.DataFrame(np.random.randn(20, 5))
return render_template("analysis.html", name=filename, data=x)
Run Code Online (Sandbox Code Playgroud)
模板analysis.html看起来像
{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data}}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
这可行,但输出看起来很糟糕.它不使用换行等,我已经打了data.to_html()和data.to_string()
什么是显示一帧的最简单的方法?
Mat*_*DMo 44
以下应该有效:
@app.route('/analysis/<filename>')
def analysis(filename):
x = pd.DataFrame(np.random.randn(20, 5))
return render_template("analysis.html", name=filename, data=x.to_html())
# ^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
查看文档以获取CSS样式等其他选项.
此外,您需要调整模板,如下所示:
{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{data | safe}}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
为了告诉Jinja你正在传递标记.感谢@SeanVieira的提示.
tsc*_*chm 22
好吧,我已经设法得到一些非常好的结果,现在结合我在这里的提示.在我使用的实际Python查看器中
@app.route('/analysis/<filename>')
def analysis(filename):
x = pd.DataFrame(np.random.randn(20, 5))
return render_template("analysis.html", name=filename, data=x)
Run Code Online (Sandbox Code Playgroud)
例如,我将完整的数据帧发送到html模板.我的html模板基于bootstrap.因此,我可以简单地写
{% extends "base.html" %}
{% block content %}
<h1>{{name}}</h1>
{{ data.to_html(classes="table table-striped") | safe}}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
引导程序还有很多其他选项,请查看:http: //getbootstrap.com/css/#tables
Base.html基本上是从这里复制的 http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xii-facelift
接下来的问题显然是如何绘制这样的框架.有没有任何Bokeh经验?
谢谢Matt和Sean.
托马斯