所以我最近开始构建我的第一个烧瓶应用程序。不幸的是我撞墙了。
我想用df.to_html
添加一个熊猫数据框表,但是我可以用该表访问页面。
现在我已经像这样设置了代码:
我的CSV文件如下:
PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,3,"Braund,Mr. Owen Harris",male,22,1,A/5 21171,7.25,S
2,"Cumings,Mr. John Bradley",38,PC 17599,71.2833,C85,C
3,"Heikkinen,Miss. Laina",female,26,STON/O2. 3101282,7.925,S
app.py代码
@app.route('/')
def base():
return render_template('/base.html')
@app.route('/index')
def index():
data = pd.read_csv("data/mydata.csv",sep='\s+',quotechar=',')
data.set_index(['Name'],inplace=True)
data.index.name=None
df = data.loc[data.Sex=='male']
return render_template('/index.html',tables=[df.to_html('male')],titles = ['na','males'])
if __name__ == '__main__':
app.run(debug=True)
HTML代码: 这是基本模板(路由也转到/ base)
<!DOCTYPE html>
<html lang="en">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='main.css') }}">
</head>
<body>
<div class="topnav">
<a href="#">Link</a>
</div>
<div class="sidenav">
<a href="{{ url_for('base') }}">Home</a>
<a href="{{ url_for('index') }}">Index</a>
</div>
<div class="content">
<p>.</p>
</div>
</div>
<div class="footer">
<p>.</p>
</div>
</body>
{% block body %}
{% endblock %}
索引HTML代码如下所示
{% extends "base.html" %}
{% block title %}Index{% endblock %}
{% block body %}
<div class="page">
<div class="container">
<div class="row">
<div class="1">
<div class=page>
<h1>Title</h1>
{% for table in tables %}
<h2>{{titles[loop.index]}}</h2>
{{ table|safe }}
{% endfor %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
不幸的是,如果我进入“索引”页面,则会收到错误消息。 base.html页面工作正常。
错误消息是(找不到404):
找不到在服务器上找不到请求的URL。如果您手动输入网址,请检查拼写,然后重试。
是否可以添加熊猫数据框,甚至flask也不可能?