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

Flask中GET请求的触发方式及原理解析

Flask中GET请求的触发逻辑解析

场景回顾

先看你给出的代码示例:

HTML模板(name.html):

<!DOCTYPE html>
<html>
<body>
    <h3>Enter Your Name</h3>
    <form method="post">
        <input type="text" name="username" required>
        <br><br>
        <input type="submit" value="Submit">
    </form>
</body>
</html>

Flask后端代码:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        name = request.form['username']
        return f"Hello {name}, POST request received"
    return render_template('name.html')

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

问题解答

  1. GET请求的触发方式
    当你在浏览器地址栏输入http://localhost:5000/login并回车,或者点击指向该路径的普通链接时,浏览器会自动发起GET请求。这是HTTP协议的默认行为——只要你要获取某个页面资源,就会用GET请求来拉取。

你的Flask代码里,@app.route('/login', methods=['GET', 'POST'])明确允许该路径接收GET和POST两种请求,所以当浏览器发起GET请求时,代码会执行return render_template('name.html'),返回表单页面。

  1. 初始访问'/login'为何是GET请求
    HTML表单里设置的method="post",只定义了表单提交时会发起POST请求,和初始加载页面的请求无关。

初始访问/login时,你只是让浏览器去获取这个路径对应的页面资源,这个过程没有提交表单的操作,所以浏览器遵循HTTP默认规则,用GET请求来拉取表单页面。只有当你在表单里输入内容并点击Submit按钮时,才会触发表单定义的POST请求,把数据发送给后端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 17:22:27