我正在尝试使用FastAPI进行简单的POST
操作。我使用 BaseModel
创建了一个基本结构,它只有两个属性,即 name
和 roll
。
import uvicorn
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
name: str
roll: int
app = FastAPI()
@app.post("/")
async def create_item(item: Item):
return item
if __name__ == '__main__':
uvicorn.run(app, port=8080, host='0.0.0.0')
我想使用<code>post</code>操作发布这些数据-<code>{“name”:“XYZ”,“roll”:51}</code>。
我知道Swagger UI(OpenAPI)提供的http://localhost:8080/docs
的自动留档,我们可以用它来发布数据。但是我不想使用它。我想用的是使用URLhttp://localhost:8080/
直接发布数据,并希望在浏览器本身中看到结果,而不是在Swagger UI中看到结果。
您需要使用Javascript接口/库,例如Fetch API,它允许您以JSON
格式发送数据(示例如下)。要提交form
数据,请查看此答案,而要发布Files
和form
/JSON
数据,请查看此答案。
对于前端,您可以使用Jinja2Templates
来渲染并返回包含HTML
/ JS
代码等的TemplateResponse
。您可以使用 HTML 表单提交数据,然后将
表单数据
转换为 JSON,
如此处所述。否则,您可以直接发布 JSON
数据,如下所示,例如 body:JSON.stringify({name: “foo”, roll: 1})。
app.py公司
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
from pydantic import BaseModel
app = FastAPI()
templates = Jinja2Templates(directory="templates")
class Item(BaseModel):
name: str
roll: int
@app.post("/")
async def create_item(item: Item):
return item
@app.get("/")
async def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
模板/index.html
<!DOCTYPE html>
<html>
<body>
<h1>Post JSON Data</h1>
<form method="post" id="myForm">
name : <input type="text" name="name" value="foo">
roll : <input type="number" name="roll" value="1">
<input type="button" value="Submit" onclick="submitForm()">
</form>
<div id="responseArea"></div>
<script>
function submitForm() {
var formElement = document.getElementById('myForm');
var data = new FormData(formElement);
fetch('/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(Object.fromEntries(data))
})
.then(resp => resp.text()) // or, resp.json(), etc.
.then(data => {
document.getElementById("responseArea").innerHTML = data;
})
.catch(error => {
console.error(error);
});
}
</script>
</body>
</html>
我正在尝试将一个名为“ethAddress”的值从客户端的输入表单传递给FastAPI,以便我可以在函数中使用它来生成matplotlib图表。 我使用fetch在Charts中发布输入的文本。tsx文件: 然后我有了我的api。py文件设置如下: 据我所知,我使用< code > fetch < code > POST 请求将请求体中的“ethAddress”从客户端传递到后端,在后端,我可以访
问题内容: 我正在尝试不使用AJAX将数据发布到REST api。我想以JSON格式发送数据。我有以下代码,但一直试图找出如何转换输入字段并将其发布到服务器。这是我的代码尝试: 问题答案: 您可以使用json值添加一个隐藏的输入字段,如下所示- 您可以使用参数( 隐藏输入的名称 )访问json
我找到了这些可能的答案,但没有成功。我做错什么了吗?我确信AngularJS会提供这个功能,但是如何提供呢?
问题内容: 我是AngularJS的新手,一开始,我想只使用AngularJS开发一个新的应用程序。 我正在尝试使用Angular应用程序向服务器端进行AJAX调用。 为了发送参数,我尝试了以下操作: 这是可行的,但在上也使用jQuery 。为了消除对jQuery的依赖,我尝试: 但这似乎失败了。然后我尝试了: 但这似乎也失败了。然后我尝试了: 我找到了这些可能的答案,但未成功。难道我做错了什么?
问题内容: 我必须将以下数据发送到URl的Web服务 要发送的数据格式为: 其中,和是键,并具有通过edittext字符串获取的相应值字符串。我在单击按钮时发布此数据。 我没有收到任何回应,因为我试图与我的合作开发者在他的iPhone相同的应用程序iPhone版本中与我的合作开发者进行反检查,因为服务器说用户名和密码无效。 我的课是: 请协助我,我是JSON和Android.Thanx解析的新手。
问题内容: 我在将数据发送到在线数据库时遇到问题。当我检查数据库时,似乎什么都没有发布。我对收到的响应执行了NSLog,它为空。 这是.php: 但是,如果我将$ response硬编码为某个字符串值,而NSLog接收到的响应,它将接收适当的字符串值。 这是我的代码: 是不是无法插入IMEI(这就是为什么它不发布)或其他问题的事实? 谢谢你的协助。 问题答案: 一些观察: 您应该使用interfa