Flask如何将Python处理后的文本结果返回并渲染到HTML的textarea中
第一步:修改Flask路由代码
你当前的问题在于POST请求处理完成后调用了redirect重定向,重定向会触发一次全新的GET请求,之前计算得到的result会在重定向后丢失。改为直接在POST分支将结果传递给模板渲染即可,也可以顺便回传原输入内容,避免提交后左侧输入框内容被清空:
@app.route('/analisis',methods=["POST","GET"]) def analisis(): result = "" input_content = "" if request.method=="POST": input_content = request.form["text1"] result = analysis(input_content) # 无论POST还是GET请求都直接渲染模板,传入需要展示的参数 return render_template('analisis.html', result=result, input_content=input_content)
第二步:修改HTML模板代码
对应两个textarea标签分别填充回传的输入内容和处理结果即可,注意要删掉textarea标签内默认的换行空格:
<!DOCTYPE html> <html> <head> <style> textarea { width: 400px; height: 400px; } </style> </head> <body> <form action="#" method="post"> <h1>Input</h1> <p><input type="submit" value="Analizar"/></p> <textarea id="txt1" name="text1" rows="4" cols="50">{{ input_content }}</textarea> <textarea id="txt2" name="text2" rows="4" cols="50">{{ result }}</textarea> </form> </body> </html>
修改完成后提交左侧输入内容,右侧textarea就会自动展示你处理后的Hello world结果。
内容的提问来源于stack exchange,提问作者Daniel López
相关产品推荐
相关产品推荐

