问题标签 [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.
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 设置我没有更改任何内容
我用来启动容器的命令:
python - dependency_overrides 不会覆盖依赖项
下面的 FastApi 测试应该使用我的get_mock_db
函数而不是get_db
函数,但事实并非如此。目前测试失败,因为它使用真实的数据库。
python - RuntimeError:无法对 TCPTransport 执行操作,处理程序已关闭
我正在尝试使用工具在我的本地机器上进行 HTTP 基准测试,该工具适用于我在+autocannon
上构建的全新的项目设置。FastAPI
uvicorn
但是在某些时候或随机(我不知道发生了什么)我遇到了一个 ASGI 异常。
要启动我的应用程序,我会:
我试图增加工人的数量。我仍然得到这些例外。
为了进行基准测试,我这样做:
PS:我的数据库(PostgreSQL
)在Docker
容器上工作。而且我还进行异步数据库交互(当然)。也许添加此信息会有所帮助。
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 之外,以显示预期结果是一个列表,我可以在其中通过索引单独访问每个访问的项目,如下所示:
我有一些假设,但都没有产生结果:
- 在 fastapi 类中为 read_item 声明的 str 类型没有相同的 .split() 函数,有没有办法默认为 python 的基本 str.split() 函数?
- 也许这是一个编码问题,但默认情况下 URL 和 python 都是 ASCII,所以这似乎不是错误
- 也许“+”需要一个转义字符(就像在大多数 REGEX 情况下一样),但在
### str.split example
(上面)它没有任何 \ 或 \ 就可以工作,所以我认为没有必要。
任何将这个字符串分隔成片段的帮助都会非常有帮助。之后,我打算处理字符串列表,并返回一个比第一个元素更复杂的 json,但这似乎是我的主要障碍。
python - 如何在调用更新后端状态的函数时从 python (fastapi) 发送服务器端事件
我有以下问题:给定一个运行 fastapi 的后端,它有一个流式端点,用于更新前端,我想在每次调用更新后端状态的函数时发送这些更新(可以通过计划的作业或命中并导致状态更新的不同端点)。
我想实现的一个简单版本是:
我希望它永远运行下去。每次状态更新时,都会event_stream
解除阻塞并发送消息。
我看过线程和异步,但我觉得我缺少一些关于如何在 python 中执行此操作的简单概念。
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 方式:-)
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 的帖子消息如下:
在后端我配置了明确的来源:
当我将响应返回给前端时:
感谢提前。
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.
因此建立了连接,但配置有问题。
有任何想法吗?
python-3.x - 如何在 FastAPI 中使用带路由的中间件
我在这里关注 FastAPI 文档并尝试使用中间件实现路由。我的主要内容包括:
发送请求时,正确执行并返回正确的值,但不包含通过中间件附加的值。
我尝试在服务路由中定义中间件并在 app.include_router 之前定义中间件