Flask如何获取HTML表单textarea提交内容替换路由中的硬编码变量
实现步骤
1. 补充HTML表单中textarea的name属性
表单提交的字段通过name属性识别传值,你当前的textarea没有设置name值,先做修改:
<form action="/" method="post"> <div class="postText"> <!-- 新增name属性,值可以自定义,这里设为user_input --> <textarea name="user_input" id="text" cols="30" rows="15" placeholder="Insert the post here"> </textarea> </div> <button type="submit">Go!</button> </form>
2. 修改Flask路由代码,从POST请求中获取textarea输入值
首先确保你已经从flask模块导入了request对象,然后替换硬编码的sequences变量即可:
# 顶部如果没导入request记得加这行 from flask import Flask, render_template, request @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # 从表单中获取name为user_input的字段值,默认返回空字符串,strip去除首尾空白字符 user_input = request.form.get('user_input', '').strip() sequences = [user_input] prediction = clf.predict(sequences)[0].title() return render_template('index.html', prediction=prediction) else: return render_template('index.html', prediction='Predictions will appear here!')
可选优化
如果需要处理用户未输入就提交的情况,可以加简单的校验:
if request.method == 'POST': user_input = request.form.get('user_input', '').strip() if not user_input: return render_template('index.html', prediction='请输入内容后再提交!') sequences = [user_input] # 后续逻辑不变
内容的提问来源于stack exchange,提问作者orie
相关产品推荐
相关产品推荐

