You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Flask中如何获取表单提交的输入文本作为变量使用

Flask获取表单提交的手机号参数实现方法

直接通过Flask内置的request对象就能拿到表单提交的参数,不需要额外安装依赖,按下面步骤修改即可:

核心逻辑说明

你当前表单用的是GET方法提交,提交后表单字段会拼接到URL的查询参数部分,在视图函数里通过request.args.get('字段名')就能获取对应的值,取到的结果直接是字符串类型,可以在后端代码里直接调用。

修改后的完整后端代码

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')
def home(): 
    # 提取前端提交的手机号参数,未提交时默认返回None
    phone_number = request.args.get('phone_number')
    
    if phone_number is not None:
        # 此处可直接使用phone_number变量编写业务逻辑,例如格式校验、入库、调用内部接口等
        print(f"后端接收到手机号:{phone_number}")
        # 示例:将手机号传回前端展示
        return render_template('index.html', input_phone=phone_number)
    
    # 普通访问页面时,直接渲染表单
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True, port=8000)

前端可选优化(展示提交结果)

如果需要在页面上提示用户提交状态,可以在index.html的表单下方加一段模板渲染逻辑,同时优化手机号输入框的类型:

<form method="GET">
    <p>Phone number:</p>
    <input name="phone_number" type="tel">
    <br><br>
    <input type="submit">
</form>
<!-- 新增提交结果展示 -->
{% if input_phone %}
<p>* 提交成功,你输入的手机号是:{{ input_phone }}</p>
{% endif %}

注意:手机号输入框建议把原来的type="number"改成type="tel",数字类型输入框会自动截断开头的0,且长数字存在精度丢失风险,不符合手机号输入的场景需求。

扩展:如果改用POST提交表单

如果不想把手机号暴露在URL里,可以把表单提交方式改成POST,只需要同步修改两处:

  • 表单标签修改为 <form method="POST">
  • 后端路由装饰器添加methods参数,同时把取参数的方法换成request.form.get:
@app.route('/', methods=['GET', 'POST'])
def home():
    if request.method == 'POST':
        phone_number = request.form.get('phone_number')
        # 后续业务逻辑和GET场景完全一致

常见踩坑提示

  • 取参数的key必须和前端input标签的name属性值完全一致,拼写、大小写错误都会导致拿到空值
  • request对象只能在视图函数内部(即请求上下文里)访问,不要在路由外全局调用
  • 拿到的手机号默认是字符串类型,不需要额外做类型转换即可直接使用

内容的提问来源于stack exchange,提问作者Sour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:39:18