当前位置: 首页 > 知识库问答 >
问题:

从请求烧瓶获取json[重复]

孙鑫鹏
2023-03-14

客户端代码:

import requests
import json

url = 'http://127.0.0.1:5050/login'
user = "newUser"
password = "password"
headers = {'content-type': 'application/json'}
response = requests.post(url, data={"user": user,"pass": password}, headers = headers)

服务器代码:

from flask import Flask, request, make_response

app = Flask(__name__)


@app.route('/login', methods=['GET','POST'])
def login():    
 if request.method == 'POST':

    username = request.form.get("user")
    password = request.form.get("pass")
    //more code
    return make_response("",200)

if __name__ == "__main__":
     app.run(host = "127.0.0.1", port = 5050)

问题是我的用户名和密码总是空的。

我还尝试使用:

content = request.get_json(force = True) 
password = content['pass']

request.form['user']

打印内容时,我有:

编辑:

我添加了json。转储和使用请求。获取_json(),它就成功了

共有3个答案

边银龙
2023-03-14

我最初的猜测是,由于您没有在请求中设置Content-Type头,Flask不理解它应该能够解析数据。尝试添加值为application/json的Content-Type头,看看这是否能满足您的需要。

另一件需要注意的事情是,当我点击登录页面时,浏览器将内容类型标题设置为application/x-www-form-urlencoded,并将数据编码为user=asdf

壤驷鸿
2023-03-14

我尝试执行您发布的相同代码,我能够获取用户名和密码的值,而不是无。

林鸿彩
2023-03-14

您发送的是表单编码的数据,而不是JSON。仅仅设置内容类型并不会将请求转换为JSON。使用json=发送json数据。

response = requests.post(url, json={"user": user,"pass": password})

检索烧瓶中的数据:

data = request.get_json()
 类似资料:
  • 我想要能够得到数据发送到我的烧瓶应用程序。我尝试访问,但它是一个空字符串。如何访问请求数据? 这个问题的答案导致我在Python Flask中询问Get raw POST body next Content-Type header,这是关于获取原始数据而不是解析数据的。

  • 我尝试使用axios对烧瓶服务器进行POST: 现在是烧瓶的部分 但是,我最终会出现以下错误: 无法加载XMLHttpRequesthttp://127.0.0.1:5000/test.对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。起源'http://localhost:3000因此不允许访问。 为什么?我将按照建议设置标题

  • 我正在将Flask与Apache一起使用。当我发送带有长url(19000个字符)的GET请求时,响应是 我怀疑该请求触发了< code > werkzeug RequestURITooLarge异常或flask 。当我用相似的url长度直接向Apache发送请求时,没有错误。 有没有办法增加Flask处理的最大url长度?

  • 我正在写一个小烧瓶应用程序来识别手写数字(0-9)。我写了几乎所有的元素(机器学习模型、web应用等),但我在捕捉图像(使用画布绘制)时遇到了问题,比如: 我想获取图像并将其保存到临时文件中。我懂Python,但从未使用过JavaScript,这是使用Canvas所必需的。 HTML: JS: 函数使用浏览器保存管理器保存图像,但我想将其保存到临时文件,稍后再使用图像。

  • 我试图在JavaScript和Python之间进行数据通信,我是通过使用JSON变量来实现的,但似乎每当我从JavaScript发出请求时,在我打印。 Python方法将返回一些东西给JS,但它总是。我的<代码>$是否做错了什么。post()方法? javascript调用: Python接收器方法:

  • 我正在检索mongo集合中与子字符串查询匹配的所有文档: 然后将所有匹配的文档作为JSONArray返回给java客户端: 当我想在java端解析JSONArray时,我必须执行以下操作: 我很有信心我在这里做错了什么。我不必先将JSONArray元素转换为字符串,然后再转换为JSONObject。我是否可以直接从JSONArray中检索JSONObject,而不用先将其转换为字符串?