我在将JSON从我的前端发送到后端并在那里读取时遇到了一点问题。首先是简单的部分,在我的< code>index.html中,我读取一些字段中写的内容,并将其传递给< code>var inputs
js lang-js prettyprint-override"><script type="text/javascript">
function get_inputs()
{
var inputs =
{
T_0 : document.getElementById("a").value,
E_A : document.getElementById("b").value,
}
backend_test(inputs)
console.log("input:" + JSON.stringify(inputs))
return inputs
}
</script>
“console.log(”input:“JSON.stringify(inputs)”输出到控制台:
输入:{"T_0":"3","E_A":"5"}
这调用函数backend_test该函数应该接受我所做的输入,并通过GET请求将其作为JSON发送到我的FastAPI:
js prettyprint-override">function backend_test(inputs)
{
var inputs = inputs
console.log('frontend_func inputs out: ' + JSON.stringify(inputs))
$(document).ready(function() //supposed to wait for the functions to be fully loaded
{
$.ajax({
type: 'GET',
contentType: 'application/json',
data: JSON.stringify(inputs),
dataType: "json",
url:"fastapi/compute",
success: function (result)
{
console.log(result)
console.log("should work")
},
error: function (error)
{
console.log(error)
console.log("error, but where?")
}
});
});
return("yay")
}
现在,在我的后端,我想以某种方式使用这些信息进行进一步的计算:
from fastapi import Request, FastAPI
from pydantic import BaseModel
from .self_ignition import test_function
from typing import List
class Liste(BaseModel):
T_0: int
E_A: int
@app.get("/compute")
def calculate(liste: Liste):
return {"backend output:" + liste}
按原样发送请求会在我的前端控制台中产生一个“错误422无法处理的实体”,我会得到“错误,但是在哪里?”在我的“后端测试”函数中定义的消息。到后端的连接在那里,调用/compute并且在calculate()中没有任何输入将会给我在函数backend_test(inputs)中定义的成功输出:“应该工作”。我不能直接查看后端代码中的错误,因为一切都是在公司的GitLab框架中设置的,测试只能通过提交更改和启动更新的网页来进行。
使用基础模型是我最后一次尝试阅读后,它在留档,家伙工作在一个类似的项目,但与不同的API只需编写def计算(身体)和有他的信息,但这似乎不工作在这个API
请注意,这些只是使连接工作的代码的一部分。我真正需要的是知道FastAPI如何处理JSON的接收,因为留档并没有真正帮助我使其工作。
提前感谢,我在这个小问题上坐了 2 天,并不断回到相同的帮助页面,但无法使其工作。
解决方案:
在这部分添加数字(),因为我后来将它们称为int而不是str:
T_0 : Number(document.getElementById("a").value),
E_A : Number(document.getElementById("b").value),
在此处将类型更改为POST:
$.ajax({
type: 'POST',
还有这里:
@app.post("/compute")
并且不要尝试返回列表,而是将此列表的元素作为 str 的变量:
x=str(liste.T_0)
return {"backend output:"+x}
您应该将值转换为整数。
您的模型需要整数。
class Liste(BaseModel):
T_0: int
E_A: int
这意味着您应该像这样发送
{"T_0": int,"E_A": int}
但是在您当前的情况下,您发送的是string
而不是int
。
使用Digital
或parseInt
将其转换为int,那么它应该可以工作。
将您的请求方式更改为发布。
type: 'POST'
你也可以改变你的方法,在你的服务器端发布。
@app.post("/compute")
我设计了一个从前端接收Json的控制器。控制器被正确调用 当我将Json的元素打印到控制台时,它们变成“null”。 前端向后端发送json。控制器被正确调用,但是当我将用户名和密码打印到控制台时,它们的值变为空。 从前端发送的Json。前端的请求url为 这是我的控制器代码: 以下是我的会员: 我尝试添加@刚体到方法,但它原来是
springboot接收前端上传到后端的文件时,在controller层内大多数使用的是MultipartFile进行接收的,当使用file进行接收时会报错 有大佬知道为啥不能用file接收文件吗?
我正在尝试将一个名为“ethAddress”的值从客户端的输入表单传递给FastAPI,以便我可以在函数中使用它来生成matplotlib图表。 我使用fetch在Charts中发布输入的文本。tsx文件: 然后我有了我的api。py文件设置如下: 据我所知,我使用< code > fetch < code > POST 请求将请求体中的“ethAddress”从客户端传递到后端,在后端,我可以访
本文向大家介绍python后端接收前端回传的文件方法,包括了python后端接收前端回传的文件方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python后端接收前端回传的文件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
我正在尝试使用FastAPI进行简单的操作。我使用 创建了一个基本结构,它只有两个属性,即 和 。 我想使用<code>post</code>操作发布这些数据-<code>{“name”:“XYZ”,“roll”:51}</code>。 我知道Swagger UI(OpenAPI)提供的的自动留档,我们可以用它来发布数据。但是我不想使用它。我想用的是使用URL直接发布数据,并希望在浏览器本身中看到
问题内容: 背景: 我希望能够在我的iOS应用程序和服务器之间发送和接收UDP数据包。服务器将所有传入消息回显给应用程序客户端。 服务器已测试并确认可以正常工作 。我有一个StartViewController,它启动了两个实现GCDAsyncUdpSocketDelegate的类,一个用于发送,一个用于接收。“发送套接字”正在工作,服务器接收到消息。 问题: 在发送后,该应用程序再也不会取回传入