问题标签 [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 回答
1638 浏览

python-3.x - Nginx proxy_pass 到 docker 容器不起作用

我有两个相同的 docker 容器在 CentOS7 服务器的不同端口上运行。旧版本在 81 端口上运行,新版本在 8080 端口上运行(也检查了 82,83)。

当我尝试代理第二个容器并将端口从 81 更改为 8080 时,我收到 nginx 错误消息(HTTP/1.1 502 Bad Gateway)。

Nginx 不在容器中。我只是将它安装在服务器上。

这是我的 proxy_pass 设置:

还有一些附加信息:

如果我尝试通过它们的端口直接访问容器,一切正常。

nginx版本:nginx/1.16.1

Docker 版本 19.03.4,构建 9013bf583a

完整的服务器配置非常标准,除了 proxy_pass 设置我没有更改任何内容

我用来启动容器的命令:

0 投票
1 回答
1168 浏览

python - dependency_overrides 不会覆盖依赖项

下面的 FastApi 测试应该使用我的get_mock_db函数而不是get_db函数,但事实并非如此。目前测试失败,因为它使用真实的数据库。

0 投票
0 回答
1413 浏览

python - RuntimeError:无法对 TCPTransport 执行操作,处理程序已关闭

我正在尝试使用工具在我的本地机器上进行 HTTP 基准测试,该工具适用于我在+autocannon上构建的全新的项目设置。FastAPIuvicorn

但是在某些时候或随机(我不知道发生了什么)我遇到了一个 ASGI 异常。

要启动我的应用程序,我会:

我试图增加工人的数量。我仍然得到这些例外。

为了进行基准测试,我这样做:

PS:我的数据库(PostgreSQL)在Docker容器上工作。而且我还进行异步数据库交互(当然)。也许添加此信息会有所帮助。

0 投票
1 回答
325 浏览

python - 为什么 str.split() 不适用于 fastapi str 类型?

出于某种原因,str.split() 在 python 的 fastapi 包中没有按预期运行。

为了简化,我包含了一个简单的 FastAPI 用例,但 str.split() 似乎只删除了我打算分割的字符,而不是返回一个列表,我可以在其中通过索引访问各个项目。高度简化的可重现代码:

我使用 uvicorn 运行此代码:

通过在 Firefox 中浏览 http://127.0.0.1:8000/alignment/abc123ABC123?q=abracadabra+django+musical

我的输出是:

但是,我希望输出是:

为了确保我没有发疯,我将 str.split() 放在 fastApi 之外,以显示预期结果是一个列表,我可以在其中通过索引单独访问每个访问的项目,如下所示:

我有一些假设,但都没有产生结果:

  1. 在 fastapi 类中为 read_item 声明的 str 类型没有相同的 .split() 函数,有没有办法默认为 python 的基本 str.split() 函数?
  2. 也许这是一个编码问题,但默认情况下 URL 和 python 都是 ASCII,所以这似乎不是错误
  3. 也许“+”需要一个转义字符(就像在大多数 REGEX 情况下一样),但在### str.split example(上面)它没有任何 \ 或 \ 就可以工作,所以我认为没有必要。

任何将这个字符串分隔成片段的帮助都会非常有帮助。之后,我打算处理字符串列表,并返回一个比第一个元素更复杂的 json,但这似乎是我的主要障碍。

0 投票
2 回答
5587 浏览

python - 如何在调用更新后端状态的函数时从 python (fastapi) 发送服务器端事件

我有以下问题:给定一个运行 fastapi 的后端,它有一个流式端点,用于更新前端,我想在每次调用更新后端状态的函数时发送这些更新(可以通过计划的作业或命中并导致状态更新的不同端点)。

我想实现的一个简单版本是:

我希望它永远运行下去。每次状态更新时,都会event_stream解除阻塞并发送消息。

我看过线程和异步,但我觉得我缺少一些关于如何在 python 中执行此操作的简单概念。

0 投票
1 回答
2924 浏览

python-3.x - Python3.7 asyncio启动webserver(FastAPI)和aio_pika消费者

在我的项目中,我尝试启动一个 REST API(使用 FastAPI 构建并使用 Hypercorn 运行),另外我还希望在启动时启动一个 RabbitMQ 使用者(使用 aio_pika):

Aio Pika 提供了强大的连接,可在失败时自动重新连接。如果我使用hypercorn app:app消费者运行下面的代码并且其余接口正确启动,但是从 aio_pika 重新连接不再起作用。如何在两个不同的进程(或线程?)中归档生产稳定的 RabbitMQ Consumer 和 RestAPI。我的 python 版本是 3.7,请注意我实际上是 Java 和 Go 开发人员,以防我的方法不是 Python 方式:-)

0 投票
1 回答
1911 浏览

vue.js - Vue 3 和 cookie

我正在 Vue 3 中构建前端,并使用 fastAPI 构建后端。我想在身份验证过程中使用 httponly,但我没有在浏览器中看到收到了 cookie。我已经与 Postman 检查了对后端的请求,我看到了带有来自后端的数据的“set-cookie”。

前端:

  • 视图 3
  • Axios 0.18.1
  • 网址:127.0.0.1:8080

后端:

  • 快速API
  • 乌维康
  • 网址:127.0.0.1:8000

在前端使用 Axios 的帖子消息如下:

在后端我配置了明确的来源:

当我将响应返回给前端时:

感谢提前。

0 投票
1 回答
400 浏览

python - 如何在 fastapi 平台上运行单独的文件?

我现在学习了这个平台,并从中非常高兴。但是当我想打开 python shell 或终端并运行单独的文件时遇到问题。

它不接受我的进口。

例如,我想db.py在“ utils”目录中运行一个文件。在主应用程序目录和 utils 目录中都有“ init.py”文件。但是当我从终端运行文件时:

它不接受该行:

我得到:

也许问题是定义根目录....我该怎么做???

谢谢 !!!

我的应用树

0 投票
1 回答
8057 浏览

python - 用于 uvicorn 的 unix 套接字上的 Nginx 反向代理不起作用

文件

-

-


设置


像往常一样启动 uvicorn

工作 - 我可以从我的浏览器访问http://127.0.0.1/ 。

在 nginx 后面启动 uvicorn

如果我现在请求http://127.0.0.1/那么:

  • Nginx:响应 502 Bad Gateway
  • uvicorn:回应WARNING: Invalid HTTP request received.

因此建立了连接,但配置有问题。

有任何想法吗?

0 投票
1 回答
8275 浏览

python-3.x - 如何在 FastAPI 中使用带路由的中间件

我在这里关注 FastAPI 文档并尝试使用中间件实现路由。我的主要内容包括:

发送请求时,正确执行并返回正确的值,但不包含通过中间件附加的值。

我尝试在服务路由中定义中间件并在 app.include_router 之前定义中间件