Skip to content

Commit db4452d

Browse files
🌐 Update Chinese translation for docs/zh/docs/tutorial/query-params-str-validations.md (#5255)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 53127ef commit db4452d

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

docs/zh/docs/tutorial/query-params-str-validations.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ q: str
104104
代替:
105105

106106
```Python
107-
q: str = None
107+
q: Union[str, None] = None
108108
```
109109

110110
但是现在我们正在用 `Query` 声明它,例如:
@@ -113,17 +113,51 @@ q: str = None
113113
q: Union[str, None] = Query(default=None, min_length=3)
114114
```
115115

116-
因此,当你在使用 `Query` 且需要声明一个值是必需的时,可以将 `...` 用作第一个参数值
116+
因此,当你在使用 `Query` 且需要声明一个值是必需的时,只需不声明默认参数
117117

118118
```Python hl_lines="7"
119119
{!../../../docs_src/query_params_str_validations/tutorial006.py!}
120120
```
121121

122+
### 使用省略号(`...`)声明必需参数
123+
124+
有另一种方法可以显式的声明一个值是必需的,即将默认参数的默认值设为 `...`
125+
126+
```Python hl_lines="7"
127+
{!../../../docs_src/query_params_str_validations/tutorial006b.py!}
128+
```
129+
122130
!!! info
123131
如果你之前没见过 `...` 这种用法:它是一个特殊的单独值,它是 <a href="https://docs.python.org/3/library/constants.html#Ellipsis" class="external-link" target="_blank">Python 的一部分并且被称为「省略号」</a>。
132+
Pydantic 和 FastAPI 使用它来显式的声明需要一个值。
124133

125134
这将使 **FastAPI** 知道此查询参数是必需的。
126135

136+
### 使用`None`声明必需参数
137+
138+
你可以声明一个参数可以接收`None`值,但它仍然是必需的。这将强制客户端发送一个值,即使该值是`None`
139+
140+
为此,你可以声明`None`是一个有效的类型,并仍然使用`default=...`
141+
142+
```Python hl_lines="9"
143+
{!../../../docs_src/query_params_str_validations/tutorial006c.py!}
144+
```
145+
146+
!!! tip
147+
Pydantic 是 FastAPI 中所有数据验证和序列化的核心,当你在没有设默认值的情况下使用 `Optional``Union[Something, None]` 时,它具有特殊行为,你可以在 Pydantic 文档中阅读有关<a href="https://pydantic-docs.helpmanual.io/usage/models/#required-optional-fields" class="external-link" target="_blank">必需可选字段</a>的更多信息。
148+
149+
### 使用Pydantic中的`Required`代替省略号(`...`)
150+
151+
如果你觉得使用 `...` 不舒服,你也可以从 Pydantic 导入并使用 `Required`
152+
153+
```Python hl_lines="2 8"
154+
{!../../../docs_src/query_params_str_validations/tutorial006d.py!}
155+
```
156+
157+
!!! tip
158+
请记住,在大多数情况下,当你需要某些东西时,可以简单地省略 `default` 参数,因此你通常不必使用 `...``Required`
159+
160+
127161
## 查询参数列表 / 多个值
128162

129163
当你使用 `Query` 显式地定义查询参数时,你还可以声明它去接收一组值,或换句话来说,接收多个值。

0 commit comments

Comments
 (0)