我的Flask应用程序的索引页面包含一个HTML表单(用于接收用户输入),该HTML表单通过POST请求将用户输入发送到另一个端点(/output),然后在那里进行处理并返回一个简单的输出。但奇怪的是,当输出返回时,它是在/output端点(url)返回的。但是,如果导航到一个新的URL代表一个GET请求,我该如何理解这一点呢?难道POST请求不应该改变浏览器中的URL吗?我还将by /output端点定义为只接受POST请求,因此我知道在这里没有GET请求在幕后进行。(我在Windows上运行Google Chrome。
Flask是否会自动返回输出 at 指定的端点,而不管你是向该端点(url)发出POST还是GET请求?如果是这样的话,那么显然不是浏览器搜索栏中的所有URL更改都表示GET请求。我只是对这一点感到困惑,因为我从来没有重定向或向/output URL发出GET请求,而且我是webdev的新手,所以非常感谢任何见解。非常感谢!!
这是一个MRE:
app.py
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
return render_template('form.html')
@app.route('/output', methods=['POST']) # Only accepts POST requests
def output():
return 'A POST request was made; input1 = ' + request.form.get('input1')
# The browser navigates to /output when the above is returned...how?
if __name__ == '__main__':
app.run()
字符串
form.html:
<form action="/output" method="post">
Input 1: <input type="string" name="input1">
<input type="submit">
</form>
型
1条答案
按热度按时间dfty9e191#
难道POST请求不应该改变浏览器中的URL吗?
POST意味着 data 不会出现在bar中(作为URL的一部分),而不是URL根本不会改变 *。