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

Flask中GET请求触发机制咨询:初始访问/login路由时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)

疑问解答:初始访问时的GET请求是怎么来的?

其实这是HTTP协议的默认行为,和你表单里设置的POST方法完全是两回事:

  • 当你在浏览器地址栏直接输入http://localhost:5000/login、或者通过普通链接(比如<a href="/login">)跳转到这个路由时,浏览器会自动向服务器发送一个GET请求——这是浏览器获取网页内容的默认请求方式,目的就是请求服务器返回对应的页面资源。
  • 你在HTML表单里设置的method="post",只是指定了点击表单的提交按钮时,浏览器会发送POST请求把表单数据传给服务器,这是触发特定操作的请求,和初始加载页面的GET请求互不干扰。

再结合你的Flask代码看:路由@app.route('/login', methods=['GET', 'POST'])明确声明了同时支持GET和POST两种请求方法,所以当浏览器发送初始的GET请求过来时,代码会进入request.method != 'POST'的分支,执行render_template('name.html')渲染出表单页面,这就是你看到初始页面的整个流程啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 06:39:03