![](/img/trans.png)
[英]Displaying image from directory to html page using Flask Python
[英]Displaying CSV file as HTML page using Flask
我有一個名為 random.csv 的 CSV 文件,如果用戶已登錄,我想在 html 頁面上呈現它。我已經嘗試為此使用 tablib。
__init__.py
from flask import Flask
import tablib
app = Flask(__name__)
dataset = tablib.Dataset()
with open(os.path.join(os.path.dirname(__file__), 'random.csv')) as f:
dataset.csv = f.read()
routes.py
@app.route('/dataset', methods=['GET', 'POST'])
@login_required
def dataset():
return dataset.html
這是 index.html 文件,我想從中鏈接到 csv 文件的 html 頁面。
{% extends "base.html" %}
{% block content %}
<p><a href="{{ url_for('dataset') }}">Click to see CSV</a> </p>
{% endblock %}
這是 dataset.html 文件,我想在其中查看 CSV 數據。
{% extends "base.html" %}
{% block content %}
{% endblock %}
我收到此錯誤: AttributeError: 'function' object has no attribute 'html' 該錯誤在我返回 dataset.html 文件的 routes.py 文件中的行上。
我通過使用 pandas 而不是 tablib 解決了這個問題。 在我的 routes.py 文件中這樣做:
import pandas as pd
@app.route('/dataset', methods=['GET', 'POST'])
@login_required
def dataset():
table = pd.read_csv('filepath', encoding= 'unicode_escape')
return render_template("dataset.html", data=table.to_html())
原因是您使用 function 名稱隱藏了變量:
def dataset():
return dataset.html
dataset
是 function。如果之前是別的東西,命名你的 function dataset
替換了那個變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.