首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >颤振与FastAPI的相互作用

颤振与FastAPI的相互作用
EN

Stack Overflow用户
提问于 2022-01-13 08:46:06
回答 3查看 2.1K关注 0票数 1

Ubuntu20.04LTS,用于FastAPI的Python3.8,以及Android 32.0.0版本的Flutter 2.8.1。

我正在尝试发送一个地图从颤振到FastAPI。我已经想好了如何发布,但是我如何从FastAPI端接收它呢?

数据库有必要吗?

颤振侧:

代码语言:javascript
运行
复制
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侧:

代码语言:javascript
运行
复制
from fastapi import FastAPI
import json


app = FastAPI()

@app.post("/search/")
async def receive_keywords():
    """What to Put Here?"""
    json.loads(?????)
EN

回答 3

Stack Overflow用户

发布于 2022-05-03 08:47:50

如果你想使用颤振作为前端,我真的建议你使用迪奥和改造来处理API集成。这两个包将帮助您轻松地管理和处理所有API端点。以下面的图片为例

。您需要编写python如下所示:

代码语言:javascript
运行
复制
@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
票数 1
EN

Stack Overflow用户

发布于 2022-02-03 04:24:50

你必须使用谐振器或JsonResponse。您必须定义一个迪克或地图,然后通过包装在上面之一发送它。这里是链接,以防您想要阅读更多内容。https://fastapi.tiangolo.com/advanced/response-directly/

票数 0
EN

Stack Overflow用户

发布于 2022-05-30 14:07:45

这是一个没有数据的JSON响应,但是您可以添加数据,您可以为var更改"Pong“。(这适用于.post())

代码语言:javascript
运行
复制
@_app.get("/")
def read_root():
    """Root route"""
    return {"Ping": "Pong"}

其他例子:

代码语言:javascript
运行
复制
    response = {"limit": limit, "offset": offset, "data": users}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70693671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档