无法从此Flask视图返回多个值

时间:2015-06-15 08:24:01

标签: python flask

以下视图将返回smead但不会返回第二个字符串。当我尝试返回变量john时,出现500错误。如何修复视图以返回正确的内容?

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def homepage():
    return render_template("main.html")

@app.route('/test/', methods=["GET","POST"])
def test():
    import re
    text = "testereread"
    john = re.findall(r'test(.*)$', text)
    smead = "testererere"
    return smead
    return "i swear it no workiez"

if __name__ == "__main__":
    app.run()

2 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为在第一个return语句 ie return smead上,函数退出时没有检查下一个return语句或下面的任何其他代码。

试试这个:

return smead + " i swear it no workiez"

答案 1 :(得分:0)

第一个问题是你只能从一个函数返回一次,所以只要你.my-dropdown-item函数结束并且没有返回下一个字符串。

第二个问题是return smead返回一个列表。 Flask不知道如何处理从视图返回的列表,因此会抛出错误。您只能从视图中返回字符串或re.findall

您可能想要做的是渲染一个用这些值做某事的模板。

Response
return render_template('test', smead=smead, other='it works', john=john)