我正在尝试使用 Flask 将数据发布到网站,当我尝试返回数据时出现 400 Bad Request 错误。
这是我发送 POST 请求的 python 代码:
import requests
from random import randint
def Temp():
return randint(0,20)
data = {'windspeed':WindSpeed(), 'Temp': Temp(), 'WindDir':WindDir()}
r = requests.post('http://10.0.0.119', data = data)
print (r.text)
这是服务器代码:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route("/", methods=['GET','POST'])
def result():
data = request.get_json(force=True)
Temp = data['Temp']
return render_template('main.html', name=Temp)
if __name__ == "__main__":
app.run()
在浏览器中运行时返回 400 错误,但客户端脚本得到正确的响应:
<!DOCTYPE html>
<html>
<body>
<h1>Temperature</h1>
<p>15</p>
</body>
</html>
其中 15 是 data[‘Temp’] 变量。
原文由 SalamalCamel 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您只是导航到
http://10.0.0.119
那么您将发送 GET 请求到def result()
这将导致错误的请求,因为没有data['Temp']
为了使它在浏览器中工作,您需要从应用程序本身发送 POST 请求,然后才能查看它。
您的应用可能是:
而你在
post_data.html
中的表格可能是这样的: