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

mime-types - 有没有办法为 Starlette/Uvicorn 显式设置 MIME 类型?

看来我的简单 Starlette/Uvicorn Web 应用程序为 Jinja 模板化(从同一服务器提供)JavaScript 文件提供了不正确的 MIME 内容类型。从屏幕截图中可以看出,uvicorn 服务器将 *.js 文件转换为类型(“text/plain”)。

截屏

我已经搜索了 Starlette 和 Uvicorn 的文件,简直被难住了。

我的简单网络应用程序如下:

加载到头部的 JavaScript 文件会给出相同的错误,但仍然会加载。这是 Firefox(73.0 64 位)中新的“nosniff”默认设置的副产品。作为模块导入加载的脚本完全失败。

我正在运行 Windows 10 (x64)、Python 3.7、uvicorn 0.11.2 和 starlette 0.13.1。

任何帮助是极大的赞赏。先感谢您。

0 投票
2 回答
1510 浏览

python - 如果任务对象存储在实例变量中,Starlette + asyncio.create_task() 不会记录错误

好吧,这很奇怪,但是这里有——


嗯,ValueError这里没有……


self.task现在,删除对in的分配MyTasks.main()


……瞧。


这里发生了什么?该分配如何产生或破坏异常记录!?

0 投票
1 回答
1368 浏览

python-3.x - 如何使用 FastAPI 返回元素

我正在尝试找到一种使用 FastAPI 插入图像的方法,这是我的代码:

当我启动univorn并打开localhost时。我收到以下错误:

不允许加载本地资源:file:///Users/user/Desktop/document/app//img.jpg

请帮忙

0 投票
1 回答
1775 浏览

python - 如何在fastapi中获取多个表单输入字段作为字典?

我必须向带有 14 个输入字段的 fastapi 端点提交这样的表单,如下所示

我可以像下面这样一个一个地获取字段。

所有 14 个字段的方式相同。

但是有没有办法通过单个 pydantic 模式获取所有字段。像下面这样

0 投票
3 回答
428 浏览

python - Google OAuth 不会在 authlib.starlette_client 中返回 refresh_token

嗨,我正在使用 authlib/FastAPI/Google 开发一个用于登录过程的网络应用程序,并希望保留refresh_token这样我可以让用户在应用程序中保持足够的时间。

我遵循了https://docs.authlib.org/en/latest/client/starlette.html中的标准程序

但是,refresh_token即使我指定了access_type='offline'. 如果我的应用程序已经在我的帐户中注册,我也添加了一个参数prompt='content'

我错过了什么吗?

此外,保持refresh_token一个长期运行的用户应用程序的最佳方式是什么?我不喜欢打扰用户多次登录。

提前致谢!

0 投票
2 回答
1655 浏览

python - Cookie 未在 starlette TestClient 上设置,请求通过 Python 请求发送

FastAPI 上的登录/注销功能在浏览器中工作,但我正在尝试为它编写单元测试。当我的应用设置 cookie 时,我可以看到响应确实发送了 cookie。当我通过 Python 请求收到它时,cookie 已从响应中删除,因此登录不起作用。

然后在浏览器中工作的服务器端:

所以在 BreakpointA() 处,就在发送响应之前,response.headers如下所示:

在 BreakpointB(),在我的测试客户端收到响应后,response.headers 和 response.cookies 如下所示:

我强烈怀疑这是因为域问题 - 但我该如何纠正呢?在我的 TestClient ( Starlette TestClient ) 中,我已经设置client.base_url = 'https://localhost'了 ,并且在我的端点中制作了我设置的 cookie DOMAIN=https://localhost。有人有解决这个问题的经验吗?

0 投票
4 回答
10129 浏览

python - FastAPI 中间件窥探响应

我尝试为 FastAPI 编写一个简单的中间件来查看响应体。

在此示例中,我只记录正文内容:

然而,看起来我以这种方式“消耗”了身体,导致了这个异常:

试图查看响应对象,我看不到任何其他方式来读取其内容。正确的方法是什么?

0 投票
1 回答
10826 浏览

python - 如何测试使用图像的 FastAPI api 端点?

我正在使用 pytest 测试一个 FastAPI 端点,该端点以二进制格式输入图像,如

启动服务器后,我可以通过运行调用手动成功测试端点requests

但是,以以下形式设置测试:

运行测试时python -m pytest,这给了我一个

我究竟做错了什么?使用图像文件
编写测试函数的正确方法是什么?test_image_analysis()

0 投票
1 回答
4608 浏览

python - FastAPI - 模拟路径功能没有效果

我有一个简单的FastAPI应用程序,我正在尝试pytest为它创建测试。

我的目标是测试应用程序在出现不同错误时的行为方式。

我的应用中有一个简单的健康检查路线:

现在在我的 pytest 模块中,我试图修补上面的函数,以便它引发不同的错误。我正在使用unittest.mock,但我的行为很奇怪。

尽管在测试中调用了完全相同的函数,但当我到达端点时,API 测试客户端仍然调用原始函数。

mock.patch测试中不直接调用函数,为什么不能正常工作?

或者也许我应该以不同的方式解决我的问题?

0 投票
3 回答
13400 浏览

python - FastAPI,返回带有 sql 查询输出的 File 响应

我正在使用 FastAPI,目前我返回了一个 csv,它是从带有 pandas 的 SQL 服务器读取的。(pd.read_sql()) 但是 csv 对于浏览器来说非常大,我想用文件响应返回它: https ://fastapi.tiangolo.com/advanced/custom-response/(页面末尾)。如果不先将其写入一个 csv 文件,我似乎无法做到这一点,这似乎很慢,并且会在每个请求上用 csv 混淆文件系统。

所以我的问题是,有没有办法从 sql 数据库或 pandas 数据框中返回 FileResponse。

如果没有,有没有办法在客户端读取完生成的 csv 文件后删除它?

谢谢你的帮助!

亲切的问候,

斯蒂芬