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

python - 为什么不使用 starlettes TestClient 使用 pytest-cov 获得 100% 的 FastAPI 覆盖率

我根本不明白 pytest-cov 的输出

在此处输入图像描述

我的测试模块如下

即我不理解 1 部分和 1 缺失。完整的 CLI 报告:

我首先想了解丢失267, 10->9的内容-该文件中的行数甚至不超过 15 行。这可能也可以解释剩下的问题。

0 投票
2 回答
3858 浏览

python - FastAPI/Pydantic 接受任意发布请求正文?

我想创建一个 FastAPI 端点,它只接受任意发布请求正文并返回它。

如果我发送{"foo" : "bar"},我想{"foo" : "bar"}回来。但我也希望能够发送{"foo1" : "bar1", "foo2" : "bar2"}并取回。

我试过:

但无论我发送什么,它都会返回一个空字典。

有任何想法吗?

0 投票
1 回答
279 浏览

reactjs - 从两个不同的静态构建目录提供 React 构建文件

我目前正在创建一个反应网页,使用 starlette 作为我的网络服务器框架,它连接我的数据库并提供 API。为了改善代码分离和不必要的文件加载,我将我的页面分成两个单独构建的反应页面。一个用于验证前的登录页面,一个用于验证完成且用户拥有有效令牌后的主页。这样做的问题是,两个反应网页都将 GET 请求作为示例发送到:/static/js/2.91da4595.chunk.js.

我想知道在查找静态文件时是否可以更改 react 将请求发送到的位置。因此,例如,我的登录页面将/otherstatic/js/2.91da4595.chunk.js改为。

可能有一种更优雅的方法可以达到我想要的目的,所以请随意使用不同的方法。如果需要任何进一步的解释或代码,请告诉我,我可以将其添加到这篇文章中。

0 投票
2 回答
1956 浏览

python - 带有正斜杠的 Starlette/FastApi 路由路径组件

我在 Starlette/FastApi 中定义了一条路线 -

我在路径组件中有一些正斜杠,我想发出以下请求以访问post_method

curl -X POST "http://127.0.0.1:5000/api/path%2Fpath" -H "accept: application/json" -d ""

导致 Starlette/Fastapi 日志中出现 404 错误。

INFO: 127.0.0.1:50233 - "POST /api/path/path HTTP/1.1" 404

如何获得正确的路径组件?

0 投票
0 回答
109 浏览

python - Python Starlette 长时间运行的作业

我想在启动服务器时添加一个长时间运行的作业,请参阅下面的我当前的实现。

它目前正在工作,但我不确定它是否是正确/正确的方法,有什么建议吗?

0 投票
1 回答
2423 浏览

sqlalchemy - Alembic 自动生成空迁移文件

我正在尝试将alembic库连接到数据库sqlalchemy库。作为指南,我使用此示例 链接

我的项目文件:

数据库.py

模型.py

env.py(蒸馏器设置)

当我跑

迁移/版本中的新文件创建此上下文

我想这可能与使用 target_metadata = metadata 变量有关。似乎一切都按照说明进行,但迁移没有按预期工作。

0 投票
1 回答
872 浏览

python - 调用`async for in`后如何获得异步生成器的下一次迭代

使用 FastAPI 我试图检测StreamingResponse是否已完全被客户端使用或是否已取消。

我有以下示例应用程序:

这似乎是“消耗”异步生成器中的第async for in generator一个astreamerStopAsyncIteration在该循环之后,即使生成器是上面定义的“无限” ,进一步尝试进行下一次迭代也会失败并出现异常。

我已经查看了PEP-525,我唯一看到的是,如果将异常抛出到生成器中,它将导致任何进一步尝试从生成器中读取以抛出 StopAsyncIteration 异常,但我看不到那个将会发生。至少,我在 Starlette 的 StreamingResponse中没有看到这一点(它似乎对“内容”没有多大作用)。生成器在执行完之后不会“释放”async for in gen吗?

0 投票
1 回答
121 浏览

sqlalchemy - 使用 python-asyncio 数据库时如何获取 LAST INSERT ID

我正在尝试使用以下堆栈将对象持久保存在数据库中:StarletteSQLArchemyDatabases

如何获得 LAST INSERT ID?

0 投票
1 回答
2821 浏览

python - 使用 FastAPI 在基于 Python 的 GraphQL 服务器中进行身份验证

我在使用 FastAPI 构建的 GraphQL 服务器中实现身份验证时遇到问题。以前,我们使用的是 REST,但现在我们正在切换到 GraphQL,我想知道如何实现它。之前,我们有不同的路由器,并且使用 FastAPI 可以很容易地使用依赖关系检查基于路由的身份验证,如下所示。我们在授权标头中发送一个令牌,我们在后端解码它并取回 user_id,然后我们可以在不同的端点中使用它。

我想知道在这里使用 GraphQL 是如何工作的。我们使用Graphene,我查看了Starlettes Authentication Examples以及设置GraphQl的介绍

例如,假设我现在只想验证突变请求而不是查询请求。此外,我想访问每个解析器中的 user_id。最好的方法是什么?

0 投票
1 回答
1047 浏览

python - 联合类型无法在运行时解析对象类型

我正在使用 Starlette 和 Graphene 使用 Python 设置 GraphQL 服务器,但遇到了一个我找不到解决方案的问题。石墨烯文档没有详细介绍我正在尝试实现的联合类型。我根据石墨烯文档设置了一个最小示例,您可以运行它来复制这个问题

如果您然后转到http://localhost:8080/graphq并输入以下查询

我收到这个错误

我现在坚持。也许有人已经这样做了并且可以提供帮助?如何在运行时解决此问题。我已经尝试过不同的方法,例如我更改了CharacterRootQuery类:

导致

任何想法将不胜感激!