Ubuntu20.04LTS,用于FastAPI的Python3.8,以及Android 32.0.0版本的Flutter 2.8.1。
我正在尝试发送一个地图从颤振到FastAPI。我已经想好了如何发布,但是我如何从FastAPI端接收它呢?
数据库有必要吗?
颤振侧:
import 'src/models/keywords_model.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' show get, post;
import 'dart:convert';
class SearchScreen extends StatefulWidget {
const SearchScreen(List<KeywordsModel> keywords, {Key? key}) : super(key: key);
@override
_SearchScreenState createState() => _SearchScreenState();
}
class _SearchScreenState extends State<SearchScreen> {
final _formKey = GlobalKey<FormState>();
final List<String> keywords = [];
final Map<String, dynamic> keywordsMap = {};
Future<void> postKeywords(parsedJson) async {
await post(Uri.http("10.0.2.2:8000", "/search"), body: parsedJson);
}
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
child: Icon(Icons.search),
onPressed: () {
print('---------------' * 20);
for (int i = 0 ; i < keywords.length ; i++) {
keywordsMap["$i"] = keywords[i];
}
var parsedJson = json.encode(keywordsMap);
postKeywords(parsedJson);
},
),
/// Skipped many lines
);
}
}
FastAPI侧:
from fastapi import FastAPI
import json
app = FastAPI()
@app.post("/search/")
async def receive_keywords():
"""What to Put Here?"""
json.loads(?????)
发布于 2022-05-03 08:47:50
如果你想使用颤振作为前端,我真的建议你使用迪奥和改造来处理API集成。这两个包将帮助您轻松地管理和处理所有API端点。以下面的图片为例
。您需要编写python如下所示:
@app.post("/merchant/change/password")
async def receive_keywords(
confirmPassword: str = Query(None, alias='confirmPassword')
merchantId: int = Query(None, alias='merchantId')
newPassword: str = Query(None, alias='newPassword')
oldPassword: str = Query(None, alias='oldPassword')
session: str = Query(None, alias='session')
):
return True
发布于 2022-02-03 04:24:50
你必须使用谐振器或JsonResponse。您必须定义一个迪克或地图,然后通过包装在上面之一发送它。这里是链接,以防您想要阅读更多内容。https://fastapi.tiangolo.com/advanced/response-directly/
发布于 2022-05-30 14:07:45
这是一个没有数据的JSON响应,但是您可以添加数据,您可以为var更改"Pong“。(这适用于.post())
@_app.get("/")
def read_root():
"""Root route"""
return {"Ping": "Pong"}
其他例子:
response = {"limit": limit, "offset": offset, "data": users}
https://stackoverflow.com/questions/70693671
复制相似问题