gpt4 book ai didi

python - 如何使用 flask 访问表单数据?

转载 作者:太空狗 更新时间:2023-10-29 18:02:27 26 4
gpt4 key购买 nike

我的 login 端点看起来像

@app.route('/login/', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
print request.form # debug line, see data printed below
user = User.get(request.form['uuid'])
if user and hash_password(request.form['password']) == user._password:
login_user(user, remember=True) # change remember as preference
return redirect('/home/')
else:
return 'GET on login not supported'

当我使用 curl 测试它时,GET 调用看起来像

⮀ ~PYTHONPATH ⮀ ⭠ 43± ⮀ curl http://127.0.0.1:5000/login/
GET on login not supported

但是在 POST 上,我无法访问表单数据并获得 HTTP 400

⮀ ~PYTHONPATH ⮀ ⭠ 43± ⮀ curl -d "{'uuid': 'admin', 'password': 'admin'}" http://127.0.0.1:5000/login/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>

虽然在服务器上,我的调试信息打印如下

ImmutableMultiDict([("{'uuid': 'admin', 'password': 'admin'}", u'')])

我在哪里 print request.form。我无法理解我哪里做错了

最佳答案

您没有正确使用 curl。像这样尝试:

curl -d 'uuid=admin&password=admin'

400 Bad Request 错误是您尝试从 request.form 获取不存在的键时的常见行为。

或者,使用 request.json 而不是 request.form 并像这样调用 curl:

curl -d '{"uuid":"admin","password":"admin"}' -H "Content-Type: application/json" 

关于python - 如何使用 flask 访问表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com