问题标签 [fastapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9891 浏览

python - AttributeError:“FastAPI”对象没有属性“记录器”

我正在将我的代码从 Python 烧瓶迁移到 Fast-API。我在将记录器添加到快速 API 时遇到问题,它将显示

“AttributeError:‘FastAPI’对象没有属性‘logger’”

请参阅代码以获取更多信息

0 投票
1 回答
1474 浏览

docker - 将此图像 uvicorn-gunicorn-starlette-docker 用于生产是否安全?

我必须为生产环境设置服务器,并且我使用的是FastAPI 框架

框架的文档建议使用这个 docker 镜像,因为它已经准备好并且可以定制。所以我要做的是使用 Uvicorn 工作人员使用 Gunicorn 公开我的应用程序。

安全吗?

因为我正在阅读一些文章,他们建议将 NGINX 作为反向代理放在 Gunicorn 前面。在这种情况下,请求被 NGINX 接收,然后它决定将它路由到哪里。我无法理解这些差异。谢谢!

0 投票
1 回答
2339 浏览

python - RabbitMQ、Flask/fastapi 和 websockets

我的系统架构看起来与此处问题中发布的图非常相似。我的实现和发布的问题之间的主要区别在于,我将使用 fastapi/flask 作为 web 服务器(在 python 中)和 rabbitmq 进行消息传递。

我的高级伪代码(使用 fastAPI)如下:

问题 1:HTTP 响应代码是什么?基本上,Web 服务器需要通知客户端在一段时间后返回并检查结果(然后返回建议)。

一旦 web 服务器通过 rabbitmq 发布消息,worker 将根据消息生成相关建议(通过查找数据库)。该消息连同 uuid 将被发送回另一个 rabbitmq 消息队列。现在 Web 服务器成为消费者。

问题 2:假设 webserver 在出口路径上注册为消息队列的消费者,webserver 是否会在消息队列的单独线程上获取数据?

问题 3:客户端和服务器可以通过web-sockets异步通信,而不是等待客户端的另一个 HTTP 请求发送建议?

0 投票
2 回答
4745 浏览

static-files - 使用 FastAPI/Starlette 提供静态文件时的相对 URL 路径

我有一个简单的 FastAPI 应用程序,它像这样提供test.html文件app/main.py

目录结构是这样的:

我可以更改此操作以使其与修改后的目录结构一起使用,app/并且static/是兄弟姐妹吗?

我已经尝试过return FileResponse('../static/test.html'),但到目前为止还没有奏效;产生的错误是“RuntimeError:路径 ../static/test.html 中的文件不存在。”

0 投票
1 回答
709 浏览

python-asyncio - 何时以及如何使用异步队列?

我有多个 api 路由,它们通过单独查询数据库来返回数据。

现在我正在尝试构建在 api 之上查询的仪表板。我应该如何将 api 调用放入队列中,以便它们异步执行?

我试过了

await queue.put({'response_1': await api_1(**kwargs), 'response_2': await api_2(**kwargs)})

似乎在将任务放入队列时返回了数据。

现在我正在使用

await queue.put(('response_1', api_1(**args_dict)))

在生产者和消费者中,我正在解析元组并进行 api 调用,我认为我做错了。

Question1 有没有更好的方法?

这是我用来创建任务的代码

Question2我应该使用create_task 还是ensure_future?对不起,如果它是重复的,但我无法理解其中的区别,在网上搜索后我变得更加困惑。

我正在使用 FastAPI、数据库(异步)包。

我正在使用元组而不是字典,例如 await queue.put('response_1', api_1(**kwargs))

我的消费者代码是

如果我不使用 get_nowait 消费者会卡住,因为队列可能是空的,但是如果我使用 get_nowait,则会显示上面的错误。我没有定义最大队列长度

- - - - - -编辑 - - - - - -

制片人

0 投票
1 回答
718 浏览

encryption - 是否所有功能都属于 FAST API 中可用的 Django Rest Framework 来开发 REST APIS

三年以来,我一直在 django rest 框架中工作。最近阅读有关 FAST API 框架的工作。FAST API 看起来像是一个非常适合当前 REST API 服务开发的框架。django 中的 FAST API 似乎缺少一些东西。1. 分页 2. 基于类的视图。3. 模拟测试 4.class 基于视图。5.努力分配在django rest框架中提供对加密数据的查找。任何人都可以帮助我,我们如何使用 FAST API 实现上述功能。

0 投票
3 回答
88 浏览

python - 使用数据库包执行功能获取整行

我在我的 fastapi 应用程序中 使用数据库包。数据库有执行和获取功能,当我尝试使用执行插入或更新后返回列值时,它只返回第一个值,如何在不使用获取的情况下获取所有值..

这是我的查询

插入表 (col1, col2, col3, col4) 值 (val1, val2, val3, val4) 返回 col1, col2;

0 投票
0 回答
1704 浏览

python-3.x - 有没有办法使用 Python 后端服务器检索客户端 IP 地址

有问题的设置如下所示:

我的 web 应用程序使用和fastapi部署工作人员类,位于具有 IP 地址的同一主机上的代理后面(以及其他远程设备,如 VPN 集中器等)gunicornuvicornnginx172.31.x.x

nginx配置如下:

gunicorn配置如下:

fastapi使用starlette.requests.Request对象(名为request)时,request.client.host打印托管 Web 应用程序的服务器的接口 IP 地址(即172.31.x.x

request.headers["x-real-ip"], request.headers["x-forwarded-for"]两者都在我的代理之前打印设备的 IP 地址,这是我公司众所周知的防火墙设备。

我想问的是:

  1. 是否可以打印整个X-Forwarded-ForHTTP 标头以查看中间代理服务?
  2. 如何检索我的最终用户的真实客户端 IP 地址(基本上覆盖众所周知的白名单 IP 地址)?
0 投票
0 回答
1636 浏览

python - 将对象实例传递给 FastAPI 路由器

在 FastAPI 路由器中将类实例作为依赖项的实现有什么问题还是一个错误?1)我已经定义了具有依赖关系的路由器

路由器

用于将其实例作为可调用传递的自定义类。

当我发送请求时,我收到此错误。

0 投票
0 回答
1538 浏览

mongodb - 使用 fastapi_contrib 与 mongodb 配合使用的 Python FAST API 框架

我正在使用 fastapi_contrib 与 mongodb 进行交互。我正在努力使用它。https://pypi.org/project/fastapi-contrib/这里只有有限的信息.. 任何人都可以向我发送使用 mongo 和快速 api 的指南。我通常编写一个代码,例如创建连接并在所有 url 中使用它。安装 fastapi_contrib 后,有了建设性地遵循的想法。但该文件没有多大帮助。

堆栈溢出答案:MongoDb with FastAPI。不使用 fast_contrib。