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

Flask中GET请求触发机制疑问:初始访问/login路由时GET请求如何发起?

关于Flask中初始GET请求发起的疑问解答

相关代码

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)

疑问解答

这其实是浏览器的默认行为哦!当你在浏览器地址栏直接输入http://localhost:5000/login,或者点击指向这个路由的普通链接时,浏览器会自动发起一个GET请求来获取该路由对应的页面内容——这是HTTP协议里浏览器访问网页的默认交互方式。

你的Flask路由@app.route('/login', methods=['GET', 'POST'])已经明确声明允许GET和POST两种请求方法,所以当浏览器第一次访问这个地址时,就会触发路由里的GET请求分支,执行render_template('name.html')渲染出表单页面。

而HTML表单里设置的method="post",只是规定了当你点击表单的「Submit」按钮时,浏览器会用POST方法把表单数据提交到该路由,这和初始访问时的GET请求是完全独立的两个操作:

  • 初始访问:浏览器主动发起GET请求,目的是获取并展示页面
  • 提交表单:用户操作后,浏览器按表单指定的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.04.27 09:22:29