Python 即使将有效的html字符串传递到模板以将csv作为html表查看时,也在Flask中键入错误

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

我的应用程序从webform收集数据,并使用数据在后端搜索数据库,然后以表的形式返回查询结果的HTML字符串。当这个字符串被传递到render_template()函数时,我得到了一个错误:view函数没有返回有效的响应

由于最后一步基本上是将csv文件转换为html表,所以我首先尝试使用pandas进行转换,即使转换后的html字符串有效,渲染函数也不接受它。然后我用图书馆的tablib试了一下,同样的故事

这就是我的html模板文件的外观。我希望查询结果替换{{contents}:

{% 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)