问题标签 [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.
python-3.x - 如何在异步上下文中读取(hdf5)文件?
最近我一直在玩一些 python 3 异步功能。总的来说,我对 3.6 语法很满意,当然还有你获得的性能提升。ASGI
在我看来,围绕标准发展的令人兴奋的项目之一是starlette。我有一个示例应用程序正在运行,我正在从hdf5
文件中读取数据。h5py
还不支持异步 I/O。这给我留下了一个问题:我在这里所做的一切有意义吗?据我了解,这段代码毕竟是同步运行的。在异步上下文中执行 I/O 的推荐方法是什么?
记录:
python-3.x - 如何使用 Starlette 框架处理 JSON 请求正文
我正在将我的 API 框架从旧版本的 ApiStar 移动到 Starlette,并且在我路由到的函数中无法正确访问 HTTP 主体,在这种情况下,它是 JSON 有效负载。
这就是 ApiStar 对我有用的东西:
基本上将上述内容转换为 Starlett 使用的语法的任何帮助都会非常有帮助,因为我无法从文档中弄清楚。
谢谢!
python-3.x - 如何在异步路由中正确等待 zmq 响应
我正在尝试等待来自路由内的 ZMQ 消息响应,但收到以下错误。
RuntimeError: Task got bad yield: <zmq.eventloop.future._TornadoFuture object at 0x7f74f4143c88>
以下代码在我们针对该框架编码的 API 的早期版本上与 ApiStar 一起使用,但我们已决定现在转移到 Starlette。下面的代码包含在一个async def
函数中。
感谢您的任何帮助!
python - POST请求后将图像写入文件夹
我正在尝试将两个图像发送到我的 API,然后将它们写入一个文件夹。但是,当我尝试保存图像时,出现以下错误:
这是我的 API 函数,它应该接收图像并将其保存到特定文件夹。
知道我做错了什么吗?
问候
编辑1:
完整代码:
结果print(dir(Image))
:
我试过from PIL import Image as pimage
然后做result_image = pimage.fromarray((img * 255).astype(numpy.uint8))
但仍然没有成功
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 代码似乎无法在我的计算机上运行,这很奇怪,有人知道为什么吗?
提前致谢!
python - 在 Docker 中使用 starlette 实现 SSL
我有一些应用程序,在 Python 3.7 上运行,在 ASGI 和 Starlette 上运行。我需要应用程序只接受 HTTP 请求。
我已经通过 docker-compose 打开了端口 443 和 80 并添加了 HTTPSRedirectMiddleware 以确保所有连接都将被重定向到 https
码头工人撰写
Python
但是当我尝试通过邮递员在本地主机上运行的容器上发送 POST 请求时,我收到无法连接的错误,并且在应用程序日志中我会得到
ios - Uvicorn 服务器意外关闭
我正在使用由 Uvicorn 服务器提供的 FastAPI 框架。我的应用程序应该在给定的端点 (/run) 上运行一些耗时的数值计算。为此,我使用了来自 fastAPI 的“background_task”(基本上是来自 Starlette 的“background_task”)。
运行应用程序时,经过一些名义行为后,服务器由于某种原因而关闭。
应用程序的日志如下所示:
我真的不明白为什么会这样。我不知道要尝试什么来修复它。
我的代码看起来像这样。
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'
你能告诉我问题是什么吗?谢谢。
python - 从 Starlette 中的同步迭代器通过 websocket 发送数据
我有一个同步迭代器,它来自第三方包。迭代器查询外部服务并产生一些数据。如果没有数据,则迭代器等待它。我将WebSocketEndpoint
Starlette 的子类化为通过 websocket 从迭代器发送新数据。不幸的是,我似乎不明白某些东西,而且我的代码没有按预期工作。这是一个稍微简化的代码:
第一个问题 - 代码不通过 websocket 发送任何数据。print 语句表明,迭代器产生数据,但实际上没有发送任何数据。如果我放return
after websocket.send_json()
,它将正确发送迭代器的第一个结果,但循环将在之后完成。为什么?
另一个问题是迭代器完全阻塞了应用程序的执行。我理解它为什么会发生,但由于它是一个 Web 服务,并且迭代器旨在工作,直到客户端与 Websocket 断开连接,它很容易阻塞我的整个应用程序。如果我有 10 个工作人员,那么 10 个 websocket 客户端将阻止应用程序,并且在其中一个 websocket 断开连接之前将无法执行任何操作。我该如何解决?
python - 接收时间过长如何关闭会话?
我用starlette framework
我在下面写了一条路线:
但我不能确保客户端会话将消息发送到 wss 服务器。
那么,我想设置接收超时的时间吗?我怎样才能做到这一点?
如果await websocket.receive_json()
超过 5s,则关闭会话。
提前致谢 :)。