Python 即使将有效的html字符串传递到模板以将csv作为html表查看时,也在Flask中键入错误
我的应用程序从webform收集数据,并使用数据在后端搜索数据库,然后以表的形式返回查询结果的HTML字符串。当这个字符串被传递到render_template()函数时,我得到了一个错误:view函数没有返回有效的响应 由于最后一步基本上是将csv文件转换为html表,所以我首先尝试使用pandas进行转换,即使转换后的html字符串有效,渲染函数也不接受它。然后我用图书馆的tablib试了一下,同样的故事 这就是我的html模板文件的外观。我希望查询结果替换{{contents}:Python 即使将有效的html字符串传递到模板以将csv作为html表查看时,也在Flask中键入错误,python,html,python-3.x,flask,Python,Html,Python 3.x,Flask,我的应用程序从webform收集数据,并使用数据在后端搜索数据库,然后以表的形式返回查询结果的HTML字符串。当这个字符串被传递到render_template()函数时,我得到了一个错误:view函数没有返回有效的响应 由于最后一步基本上是将csv文件转换为html表,所以我首先尝试使用pandas进行转换,即使转换后的html字符串有效,渲染函数也不接受它。然后我用图书馆的tablib试了一下,同样的故事 这就是我的html模板文件的外观。我希望查询结果替换{{contents}: {% e
{% extends "layout.html" %}
{% block content %}
{{contents}}
{% endblock %}
这就是python脚本的驱动程序部分:
import os
from flask import Flask, render_template, request
import tablib
app = Flask(__name__)
@app.route('/results', methods=['POST'])
def results():
contents = convert(outfile)
render_template('results.html', contents=contents)
def convert(outfile):
dataset = tablib.Dataset()
with open(out_file_name, 'r') as f:
dataset.csv = f.read()
return str(dataset.html)
调试时,我可以从convert函数中看到作为dataset.html值创建的csv文件的html字符串,但我不明白为什么render_template函数不接受该字符串。这可能会起作用:
import os
from flask import Flask, render_template, request
import tablib
app = Flask(__name__)
# Define this function before it is actually called:
def convert(outfile):
dataset = tablib.Dataset()
with open(out_file_name, 'r') as f:
dataset.csv = f.read()
return str(dataset.html)
# You forgot `return` and indented the last line of this too much:
@app.route('/results', methods=['POST'])
def results():
contents = convert(outfile)
return render_template('results.html', contents=contents)