问题标签 [starlette]

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 回答
833 浏览

python-3.x - 如何在异步上下文中读取(hdf5)文件?

最近我一直在玩一些 python 3 异步功能。总的来说,我对 3.6 语法很满意,当然还有你获得的性能提升。ASGI在我看来,围绕标准发展的令人兴奋的项目之一是starlette。我有一个示例应用程序正在运行,我正在从hdf5文件中读取数据。h5py还不支持异步 I/O。这给我留下了一个问题:我在这里所做的一切有意义吗?据我了解,这段代码毕竟是同步运行的。在异步上下文中执行 I/O 的推荐方法是什么?

记录:

0 投票
2 回答
6406 浏览

python-3.x - 如何使用 Starlette 框架处理 JSON 请求正文

我正在将我的 API 框架从旧版本的 ApiStar 移动到 Starlette,并且在我路由到的函数中无法正确访问 HTTP 主体,在这种情况下,它是 JSON 有效负载。

这就是 ApiStar 对我有用的东西:

基本上将上述内容转换为 Starlett 使用的语法的任何帮助都会非常有帮助,因为我无法从文档中弄清楚。

谢谢!

0 投票
0 回答
153 浏览

python-3.x - 如何在异步路由中正确等待 zmq 响应

我正在尝试等待来自路由内的 ZMQ 消息响应,但收到以下错误。

RuntimeError: Task got bad yield: <zmq.eventloop.future._TornadoFuture object at 0x7f74f4143c88>

以下代码在我们针对该框架编码的 API 的早期版本上与 ApiStar 一起使用,但我们已决定现在转移到 Starlette。下面的代码包含在一个async def函数中。

感谢您的任何帮助!

0 投票
0 回答
563 浏览

python - POST请求后将图像写入文件夹

我正在尝试将两个图像发送到我的 API,然后将它们写入一个文件夹。但是,当我尝试保存图像时,出现以下错误:

这是我的 API 函数,它应该接收图像并将其保存到特定文件夹。

知道我做错了什么吗?

问候

编辑1:

完整代码:

结果print(dir(Image))

我试过from PIL import Image as pimage然后做result_image = pimage.fromarray((img * 255).astype(numpy.uint8))但仍然没有成功

0 投票
2 回答
1987 浏览

python - FastAPI websocket无法连接

我试图让我的 Vue.js 应用程序使用 websockets 与我的 FastAPI(基于 starlette)本地服务器通信。我尝试使用与他们的示例完全相同的代码:https ://fastapi.tiangolo.com/tutorial/websockets/ 。但是发生了一些奇怪的事情,因为我的服务器无法启动原因:AttributeError: 'FastAPI' object has no attribute 'websocket'. 这很奇怪,因为这个确切的代码是 FastAPI 的官方文档。
之后我使用了 Starlette 示例代码:https ://www.starlette.io/websockets/ 。但是,当我尝试连接到它时,FastApi 会打印到终端:WARNING: Invalid HTTP request received.
我尝试使用另一个客户端,简单 WebSocket 客户端:https ://chrome.google.com/webstore/detail/simple-websocket-client/pfdhoblngboilpfeibdedpjgfnlcodoo,但同样的错误出现在终端上。
我在这里做错了什么?首先,我发现 FastAPI 代码似乎无法在我的计算机上运行,​​这很奇怪,有人知道为什么吗?

提前致谢!

0 投票
1 回答
735 浏览

python - 在 Docker 中使用 starlette 实现 SSL

我有一些应用程序,在 Python 3.7 上运行,在 ASGI 和 Starlette 上运行。我需要应用程序只接受 HTTP 请求。

我已经通过 docker-compose 打开了端口 443 和 80 并添加了 HTTPSRedirectMiddleware 以确保所有连接都将被重定向到 https

码头工人撰写

Python

但是当我尝试通过邮递员在本地主机上运行的容器上发送 POST 请求时,我收到无法连接的错误,并且在应用程序日志中我会得到

0 投票
1 回答
3554 浏览

ios - Uvicorn 服务器意外关闭

我正在使用由 Uvicorn 服务器提供的 FastAPI 框架。我的应用程序应该在给定的端点 (/run) 上运行一些耗时的数值计算。为此,我使用了来自 fastAPI 的“background_task”(基本上是来自 Starlette 的“background_task”)。

运行应用程序时,经过一些名义行为后,服务器由于某种原因而关闭。

应用程序的日志如下所示:

我真的不明白为什么会这样。我不知道要尝试什么来修复它。

我的代码看起来像这样。

0 投票
1 回答
1647 浏览

python - 无法使用 Jinja 模板将变量从 Starlette 后端传递到 Javascript 前端

我正在使用 starlette ASGI 框架并想要呈现 HTML 响应。

使用下面的虚拟路由来测试将变量传递给 javascript 前端。

这是我的“analyze_response.html”文件:

根据一些答案,我尝试了一切,但仍然无法正常工作。

出现以下错误:

文件“app/server.py”,第 125 行,在 server_error return templates.TemplateResponse(template, context, data=data) TypeError: TemplateResponse() got an unexpected keyword argument 'data'

你能告诉我问题是什么吗?谢谢。

0 投票
1 回答
878 浏览

python - 从 Starlette 中的同步迭代器通过 websocket 发送数据

我有一个同步迭代器,它来自第三方包。迭代器查询外部服务并产生一些数据。如果没有数据,则迭代器等待它。我将WebSocketEndpointStarlette 的子类化为通过 websocket 从迭代器发送新数据。不幸的是,我似乎不明白某些东西,而且我的代码没有按预期工作。这是一个稍微简化的代码:

第一个问题 - 代码不通过 websocket 发送任何数据。print 语句表明,迭代器产生数据,但实际上没有发送任何数据。如果我放returnafter websocket.send_json(),它将正确发送迭代器的第一个结果,但循环将在之后完成。为什么?

另一个问题是迭代器完全阻塞了应用程序的执行。我理解它为什么会发生,但由于它是一个 Web 服务,并且迭代器旨在工作,直到客户端与 Websocket 断开连接,它很容易阻塞我的整个应用程序。如果我有 10 个工作人员,那么 10 个 websocket 客户端将阻止应用程序,并且在其中一个 websocket 断开连接之前将无法执行任何操作。我该如何解决?

0 投票
1 回答
451 浏览

python - 接收时间过长如何关闭会话?

我用starlette framework 我在下面写了一条路线:

但我不能确保客户端会话将消息发送到 wss 服务器。

那么,我想设置接收超时的时间吗?我怎样才能做到这一点?

如果await websocket.receive_json()超过 5s,则关闭会话。

提前致谢 :)。