问题标签 [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.

0 投票
1 回答
771 浏览

vue.js - 使用 Axios 调用后 Cookie 未存储在浏览器中

我正在创建一个简单的身份验证系统并在以下位置有一个简单的游戏项目:https ://github.com/ericg-vue-questions/authentication

我使用的主要技术是:

  1. 后端服务器的FastAPI
  2. 用于前端 UI 的Vue
  3. axios 从前端到后端的通信(最终,一个标准的 OpenAPI 客户端)

我通过以下方式拨打 axios电话

在后端,设置 cookie 的代码是:

我可以确认 cookie 正在浏览器中发送和接收,但由于某种原因它没有被存储。我认为唯一需要的是在 axios 获取请求中设置 withCredentials: true ,但这似乎不起作用。知道我可能做错了什么吗?

我的响应标头是:

0 投票
1 回答
2479 浏览

python - FastAPI - HTTP 基本身份验证 - 选择自己的用户名/密码和 Base64

如何添加我的用户名和密码并为基本身份验证添加 base64。( https://fastapi.tiangolo.com/tutorial/security/http-basic-auth/ )

我读了很多书,最后我什至用密码(和散列)设置了 OAuth2,用 JWT 令牌设置了承载,但这对我来说太多了,我只需要一个简单的基本身份验证并添加一个小保护就可以了,基本上加个base64。

这个想法是在标题中有这样的东西:

{'Authorization': 'Basic aGVsbG86d29ybGQ='} #hello:world

但是我的知识非常少,我遇到了第一个问题,甚至配置如何使用我自己的用户名和密码:

登录

我的问题:

如何选择自己的用户名和密码,然后才能使用 base64 对授权进行编码/解码,以便能够发送到标头,例如:

{'Authorization': 'Basic aGVsbG86d29ybGQ='} #hello:world

0 投票
5 回答
9235 浏览

python - 如何在 Heroku 中运行 UVICORN?

所以我已经想出了如何编写一个fastAPI,我准备将我的脚本部署到我使用过fastAPI(https://fastapi.tiangolo.com/)的heroku,但是问题是当我向heroku发出请求时它只会返回:

这意味着脚本已打开,但我看不到错误,我会说它在本地工作得很好。

我无法看到问题所在的任何日志,但是我会说我的问题可能是我不确定我的procfile是否正确,因为我根本没有编辑它,而且我对此很陌生,我在这里问我如何能够在 heroku 中运行我的 fastapi 脚本?

我所知道的是,为了能够运行脚本,你必须使用命令uvicorn main:app --reload,如果你这样做,它将不起作用等等py main.py我做错了什么?

0 投票
1 回答
270 浏览

python-3.x - 转换一些列并选择所有列而不显式写入列名

我想投一些列,然后选择所有其他列

有什么方法可以转换某些列并全选而不提及所有列名

我试过了

但是我得到了两个额外的列(总共 7 列),它们被强制转换,我无法将它们转换为会引发键错误的字典。

我正在使用 FASTAPI、sqlalchemy 和数据库(异步)

谢谢

0 投票
1 回答
167 浏览

python - 中间件影响 API 上的所有请求

我正在使用 fastapi 并假设我已经注册了 2 个名为 A 和 B 的中间件(例如,它们可以向每个请求添加到数据库的连接)。假设我有 2 个端点,第一个只需要 A 中间件,第二个只需要 B 中间件。我使用依赖项来建立每个端点的需求。当我使用第一个端点时,请求配备了中间件 A 和 B 的结果,我想仅在需要时限制中间件的效果,我认为这是使用依赖项完成的。我怎样才能做到这一点?。谢谢!!

0 投票
2 回答
4438 浏览

python - Pydantic验证器删除空白字符串?

我有以下 Pydantic 模型:

我的目标是能够将空字符串作为空值忽略,但它似乎不起作用。

Report(id=5,name="Steve",grade=0.5) 创建一个实例,proportion=None但... Report(id=5,name="Steve",grade=0.5,proportion="")抛出错误value is not a valid float (type=type_error.float)。我怎样才能得到与第一种情况相同的结果?

0 投票
1 回答
1754 浏览

fastapi - 如何在 Starlette/FastAPI 中进行客户端证书验证 (mTLS)

我正在考虑使用 FastAPI 框架来实现相当简单的 API,但它需要支持 mTLS。AFAIK FastAPI 基于 Starlette。是否可以在 Starlette 中检查客户证书?

0 投票
1 回答
1173 浏览

python - 是否可以允许用户在 FastAPI 或 Flask 中下载 pyspark 数据帧的结果

我正在使用 FastAPI 开发一个 API,用户可以向该 API 发出请求,以便发生以下情况:

  1. 首先,get 请求将从 Google Cloud Storage 中获取文件并将其加载到 pyspark DataFrame
  2. 然后应用程序将对 DataFrame 执行一些转换
  3. 最后,我想将 DataFrame 作为 parquet 文件写入用户的磁盘。

由于以下几个原因,我不太清楚如何以 parquet 格式将文件传递给用户:

  • df.write.parquet('out/path.parquet')将数据写入一个目录,out/path.parquet当我尝试将其传递给该目录时会遇到挑战starlette.responses.FileResponse
  • 传递我知道存在的单个 .parquet 文件starlette.responses.FileResponse似乎只是将二进制文件打印到我的控制台(如下面的代码所示)
  • 将 DataFrame 写入 Pandas 中的 BytesIO 流似乎很有希望,但我不太清楚如何使用 DataFrame 的任何方法或 DataFrame.rdd 的方法来做到这一点。

这在 FastAPI 中是否可行?在 Flask 中可以使用send_file()吗?

这是我到目前为止的代码。请注意,我已经尝试了一些类似注释代码的方法,但均无济于事。

谢谢!

编辑:我尝试使用此处提供的答案和信息,但我无法让它正常工作。

0 投票
2 回答
347 浏览

python - 具有合理默认值的必填字段

考虑以下

这将为required提供一个必填字段Model,但是,在 FastAPI 自动生成的 Swagger 文档中,它将具有“字符串”的示例值。

如何使用合理的默认值创建必填字段?如果我制作一个像

然后required不再需要该字段,但它在文档中显示为合理的默认值。有一个简单的解决方法吗?

0 投票
1 回答
3681 浏览

python - 如何从 FastAPI 端点返回字典 + 图像?

我正在尝试使用 FastAPI 允许我的(dockerized)服务器响应返回的 API 调用

  • 一个图像image,和
  • 一本字典additional_dict

(对于机器学习示例,这可能是来自分类器和显着图的分类标签)。

就我而言,我认为使用相同的端点来获取两个对象是有意义的,因为它们是通过相同的计算生成的。

我可以使用类似于https://stackoverflow.com/a/55905051/4240413的内容成功地将图像作为二进制返回:

当我通过 localhost:8000/docs 上的招摇 UI 调用服务时,这甚至可以让我看到图像响应。

但是,我不知道如何将图像二进制文件和字典放在一起。

我尝试将我的退货声明替换为:

但这并没有真正起作用(在 localhost:8000/docs 上尝试招摇时,我只得到下面的 json 回复,并创建了临时文件的路径)

是否可以从同一端点获得二进制图像和附加字典的响应?如果是这样,最好的方法是什么?
是否可以在 Swagger UI 中呈现图像/docs并在那里读取 dict 值?