问题标签 [pydantic]
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 - 如何在 pydantic 中设置最大字符串字段长度约束?
所以,我有带有字符串字段的 pydantic 模型
我想让这个字段的最大长度为 10。我该怎么做?
python - Pydantic - 在 response_model 中使用“联合”和“字段”时无法序列化/验证
- 操作系统:Ubuntu 18.04.4 LTS
- Python版本:3.7.7
- Pydantic 版本:1.4
我正在尝试制作class TableSetting
asBaseModel
并将其作为response body
. 但似乎这个类中有一些验证或序列化错误。我想这可能是Union
或者Optional[str]
我使用但不确定。
源代码
的 json 模式class TableSetting
应该是这样的
表演时curl
它返回错误如下,响应代码为 500, Internal Server Error,似乎有些验证问题,kitchen
但我不知道为什么。
但是,当= Field(..., title="I a title")
从代码中删除时,如下所示。响应代码 200可以正常工作,但是由于我需要Item kitchen
,所以这不是我想要的。
我怎样才能解决这个问题?
谢谢
python-3.6 - FastAPI 文件必须放在函数参数中的表单之前
我有一个端点,它接受一个文件和一个通过表单主体传递的字符串参数。但是我在调试时注意到:
将这个简单的 curl 命令与 test_file.txt 一起使用,其中包含一些文本:
不适用于此错误:
但有趣的是,这确实有效:
唯一的区别是您在 Form 元素之前获取 File。有人知道为什么会这样吗?看起来需要在表单之前上传文件。当 Form 解析 http 表单正文时,文件可能会被杀死。我在 FastAPI 文档中没有看到任何关于表单和文件的内容。
python - 如何验证 pydantic 模型的多个领域
我想验证 pydantic 模型的三个模型字段。为此,我从 pydantic 导入 root_validator。低于错误。我在https://pydantic-docs.helpmanual.io/usage/validators/#root-validators中找到了这个。任何人都可以帮助我。找出下面的错误。from pydantic import BaseModel, ValidationError, root_validator Traceback(最近一次调用最后一次):文件“”,第 1 行,在 ImportError 中:无法从“pydantic”导入名称“root_validator”(C:\Users\Lenovo\AppData\Local\Programs\ Python\Python38-32\lib\site-packages\pydantic__init__.py)
我试过了
我从一些常见的字段父模型继承了我的 pydantic 模型。值仅显示父类字段,但不显示我的子类字段。例如
python - 以优雅的方式使用 Pydantic 检查 List 是否为空
假设我有一些BaseModel
,我想检查它的options
列表是否为空。我可以完美地做到这一点validator
:
还有其他更优雅的方法吗?
python - jsons数组的Pydantic模型
我正在使用 FastAPI 编写 Web 服务。它又好又快。
FastAPI 使用 pydantic 模型来验证输入和输出数据,一切都很好,但是当我想为 jsons 数组声明一个嵌套模型时,如下所示:
我得到空洞的回应。
我认为我的模型存在问题:
所以,我的问题是我应该如何为 jsons 数组编写模型?
python - 在 FastAPI 中测试 Pydantic 设置
假设我main.py
是这样的(这是一个简化的示例,在我的应用程序中我使用了一个实际的数据库,并且我有两个不同的数据库 URI 用于开发和测试):
虽然.env
是
假设我想测试我的代码并且我想设置ENVIRONMENT=test
为使用测试数据库。我应该怎么办?在 FastAPI 文档(https://fastapi.tiangolo.com/advanced/settings/#settings-and-testing)中有一个很好的例子,但它是关于依赖关系的,所以据我所知,情况不同。
我的想法如下(test.py
):
但它不起作用。
此外,我收到此错误:
虽然从pytest
官方文档来看它应该可以工作(https://docs.pytest.org/en/3.0.1/monkeypatch.html#example-setting-an-environment-variable-for-the-test-session)。我已经pytest
安装了最新版本。
因此,我尝试使用特定的测试环境变量:https ://pydantic-docs.helpmanual.io/usage/settings/#field-value-priority 。
老实说,我迷路了,我唯一真正的目标是拥有不同的测试配置(与 Flask 的工作方式相同:https ://flask.palletsprojects.com/en/1.1.x/tutorial/tests/#setup-和固定装置)。我是否以错误的方式解决问题?
pydantic - 如何删除空字段?
我有一个像这样的 BaseModel
虽然我验证了一些这样的数据
我得到了结果
{'id':123,'name':无}
但我期望的是:
{'id':123}
问题:有没有删除空字段的方法?谢谢!
python - 在 Post 请求的正文中发送列表值以验证 Pydantic 模型
我正在使用 FastAPI、Pydantic、SQLAlchemy 和 Postgres 来构建一个接收 post 请求并将数据存储在数据库中的服务。Pydantic 模型中有一个List,如下所示:
和表:
当没有List值时,这是我执行发布请求的方式:
发布请求的正文:
它工作正常。但是添加List值会因 Pydantic 的验证错误而破坏它:
值不是有效列表
type_error.list
如何更改发布功能和请求正文以使其正常工作?
编辑:回溯:
python - 尽管数据库/模型中存在数据,但 FastAPI 没有选择嵌套模式
尝试返回存储在两个模型之间的关系中的数据时出现错误。更多信息如下:
models.py
(相关模型为Company
和Address
)
schemas.py
相关电话main.py
:
现在,据我从文档中可以看出,我已经把一切都设置好了。当我address: Address
从公司架构中删除时,此调用将返回正确的公司/公司,但没有地址数据。
我通过测试检查了相关地址数据是否与公司模型相关联
所以我知道数据在地址表中,关系设置正确,并且模型和模式在尝试将地址数据包含在结果中之前工作。但是,当我尝试访问时,http://127.0.0.1:8000/companies?number=12544331
我收到内部服务器错误和以下错误消息:
似乎认为地址数据不存在。我认为这与延迟加载有关orm_mode
,schemas.py
但我已orm_mode
着手True
避免这种情况(请参阅https://fastapi.tiangolo.com/tutorial/sql-databases/#technical-details-about-orm-mode)。
请问,我错过了什么?