]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Russian translation for `docs/ru/docs/tutorial/body-nested-models.md` (#9605)
authorAlexandr <alexandrhub@vk.com>
Thu, 22 Jun 2023 11:46:36 +0000 (14:46 +0300)
committerGitHub <noreply@github.com>
Thu, 22 Jun 2023 11:46:36 +0000 (13:46 +0200)
Co-authored-by: ivan-abc <36765187+ivan-abc@users.noreply.github.com>
Co-authored-by: Vladislav Kramorenko <85196001+Xewus@users.noreply.github.com>
docs/ru/docs/tutorial/body-nested-models.md [new file with mode: 0644]
docs/ru/mkdocs.yml

diff --git a/docs/ru/docs/tutorial/body-nested-models.md b/docs/ru/docs/tutorial/body-nested-models.md
new file mode 100644 (file)
index 0000000..6435e31
--- /dev/null
@@ -0,0 +1,382 @@
+# Body - Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
+
+Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **FastAPI**, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΠΈ (благодаря Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pydantic).
+
+## ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΡ… ΡΠΏΠΈΡΠΊΠΈ
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ‚ΠΈΠΏ. ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏ `list` Π² Python:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="12"
+    {!> ../../../docs_src/body_nested_models/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="14"
+    {!> ../../../docs_src/body_nested_models/tutorial001.py!}
+    ```
+
+Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚ `tags` ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ся Π² ΡΠΏΠΈΡΠΎΠΊ, Π½Π΅ΡΠΌΠΎΡ‚ря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½.
+
+## ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΡ… ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²
+
+Однако Π² Python Π΅ΡΡ‚ΡŒ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² Ρ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²:
+
+### Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ `List` ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ typing
+
+Π’ Python 3.9 ΠΈ Π²Ρ‹ΡˆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ `list` Π΄Π»Ρ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½ΠΈΠΆΠ΅. πŸ’‘
+
+Но Π² Π²Π΅Ρ€ΡΠΈΡΡ… Python Π΄ΠΎ 3.9 (начиная Ρ 3.6) ΡΠ½Π°Ρ‡Π°Π»Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ `List` ΠΈΠ· ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Ρ `typing` Π² Python:
+
+```Python hl_lines="1"
+{!> ../../../docs_src/body_nested_models/tutorial002.py!}
+```
+
+### ΠžΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅ `list` Ρ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²
+
+ОбъявлСниС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²) Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°ΠΊ `list`, `dict`, `tuple`:
+
+* Π•сли Ρƒ Π²Π°Ρ Python Π²Π΅Ρ€ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ Ρ‡Π΅ΠΌ 3.9, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ `typing`
+* ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ(ΠΈΠ΅) Ρ‚ΠΈΠΏ(Ρ‹) ΠΊΠ°ΠΊ "ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚ΠΈΠΏΠ°", ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΡΠΊΠΎΠ±ΠΊΠΈ: `[` ΠΈ `]`
+
+Π’ Python Π²Π΅Ρ€ΡΠΈΠΈ 3.9 ΡΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
+
+```Python
+my_list: list[str]
+```
+
+Π’ Π²Π΅Ρ€ΡΠΈΡΡ… Python Π΄ΠΎ 3.9 ΡΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
+
+```Python
+from typing import List
+
+my_list: List[str]
+```
+
+Π­Ρ‚ΠΎ Π²ΡΡ‘ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΡΠΈΠ½Ρ‚аксис Python Π΄Π»Ρ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ².
+
+Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΡ‚ΠΎΡ‚ ΠΆΠ΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΡΠΈΠ½Ρ‚аксис Π΄Π»Ρ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.
+
+Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π½Π°ΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»Ρ ΠΏΠΎΠ»Ρ `tags` ΠΊΠ°ΠΊ "список ΡΡ‚Ρ€ΠΎΠΊ":
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="12"
+    {!> ../../../docs_src/body_nested_models/tutorial002_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="14"
+    {!> ../../../docs_src/body_nested_models/tutorial002_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="14"
+    {!> ../../../docs_src/body_nested_models/tutorial002.py!}
+    ```
+
+## Π’ΠΈΠΏΡ‹ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²
+
+Но Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΈ ΠΏΠΎΠ½ΡΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π³ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ ΠΈ, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌΠΈ.
+
+И Π² Python Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π² ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² - `set`.
+
+Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŒΡΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ `tags` ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΡΡ‚Ρ€ΠΎΠΊ:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="12"
+    {!> ../../../docs_src/body_nested_models/tutorial003_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="14"
+    {!> ../../../docs_src/body_nested_models/tutorial003_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="1  14"
+    {!> ../../../docs_src/body_nested_models/tutorial003.py!}
+    ```
+
+Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΡ‚ΠΎΠ³ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡ Ρ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ².
+
+И ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π» Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ².
+
+И ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ / Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.
+
+## Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠœΠΎΠ΄Π΅Π»ΠΈ
+
+Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Pydantic-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ.
+
+Но ΡΡ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡŒΡŽ Pydantic.
+
+Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ JSON "ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹" Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠ΅ΠΉ.
+
+Всё ΡΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ.
+
+### ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΌΠΎΠ΄Π΅Π»ΠΈ
+
+НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΡŒ `Image`:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="7-9"
+    {!> ../../../docs_src/body_nested_models/tutorial004_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="9-11"
+    {!> ../../../docs_src/body_nested_models/tutorial004_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="9-11"
+    {!> ../../../docs_src/body_nested_models/tutorial004.py!}
+    ```
+
+### Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚ΠΈΠΏΠ°
+
+Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Ρƒ ΠΌΠΎΠ΄Π΅Π»ΡŒ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="18"
+    {!> ../../../docs_src/body_nested_models/tutorial004_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="20"
+    {!> ../../../docs_src/body_nested_models/tutorial004_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="20"
+    {!> ../../../docs_src/body_nested_models/tutorial004.py!}
+    ```
+
+Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ **FastAPI** Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠ°, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ ΡΡ‚ΠΎΠΌΡƒ:
+
+```JSON
+{
+    "name": "Foo",
+    "description": "The pretender",
+    "price": 42.0,
+    "tax": 3.2,
+    "tags": ["rock", "metal", "bar"],
+    "image": {
+        "url": "http://example.com/baz.jpg",
+        "name": "The Foo live"
+    }
+}
+```
+
+Π•Ρ‰Ρ‘ Ρ€Π°Π·: ΡΠ΄Π΅Π»Π°Π² Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅, Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **FastAPI** Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅:
+
+* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² IDE (Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚.Π΄), Π΄Π°ΠΆΠ΅ Π΄Π»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
+* ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
+* Π’Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…
+* ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ
+
+## ΠžΡΠΎΠ±Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡ
+
+Помимо ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡΡ‚Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ `str`, `int`, `float`, ΠΈ Ρ‚.Π΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ся ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° `str`.
+
+Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²ΡΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ Π²Π°Ρ Π΅ΡΡ‚ΡŒ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ Ρ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ <a href="https://pydantic-docs.helpmanual.io/usage/types/" class="external-link" target="_blank">ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Pydantic</a>. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅.
+
+НапримСр, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ `Image` Ρƒ Π½Π°Ρ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ `url`, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ `HttpUrl` ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ Pydantic Π²ΠΌΠ΅ΡΡ‚ΠΎ Ρ‚ΠΈΠΏΠ° `str`:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="2  8"
+    {!> ../../../docs_src/body_nested_models/tutorial005_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="4  10"
+    {!> ../../../docs_src/body_nested_models/tutorial005_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="4  10"
+    {!> ../../../docs_src/body_nested_models/tutorial005.py!}
+    ```
+
+Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° Π½Π° ΡΠΎΠΎΡ‚вСтствиС Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΠΌΡƒ URL-адрСсу ΠΈ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π² JSON ΡΡ…Π΅ΠΌΡƒ / OpenAPI.
+
+## ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
+
+Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Pydantic Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚ΠΈΠΏΠΎΠ² Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ…  Π² `list`, `set` ΠΈ Ρ‚.Π΄:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="18"
+    {!> ../../../docs_src/body_nested_models/tutorial006_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="20"
+    {!> ../../../docs_src/body_nested_models/tutorial006_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="20"
+    {!> ../../../docs_src/body_nested_models/tutorial006.py!}
+    ```
+
+Вакая Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ (ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚.Π΄) JSON-содСрТимоС Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:
+
+```JSON hl_lines="11"
+{
+    "name": "Foo",
+    "description": "The pretender",
+    "price": 42.0,
+    "tax": 3.2,
+    "tags": [
+        "rock",
+        "metal",
+        "bar"
+    ],
+    "images": [
+        {
+            "url": "http://example.com/baz.jpg",
+            "name": "The Foo live"
+        },
+        {
+            "url": "http://example.com/dave.jpg",
+            "name": "The Baz"
+        }
+    ]
+}
+```
+
+!!! info "Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ"
+    Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ ΠΊΠ»ΡŽΡ‡Π° `images` Π΅ΡΡ‚ΡŒ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
+
+## Π“Π»ΡƒΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΠΈ:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="7  12  18  21  25"
+    {!> ../../../docs_src/body_nested_models/tutorial007_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="9  14  20  23  27"
+    {!> ../../../docs_src/body_nested_models/tutorial007_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="9  14  20  23  27"
+    {!> ../../../docs_src/body_nested_models/tutorial007.py!}
+    ```
+
+!!! info "Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ"
+    Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° `Offer` Π΅ΡΡ‚ΡŒ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² `Item`, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² `Image`
+
+## Π’Π΅Π»Π° Ρ Ρ‡ΠΈΡΡ‚Ρ‹ΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²
+
+Если Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Ρ‚Π΅Π»Π° JSON-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€Π΅Π΄ΡΡ‚авляСт ΡΠΎΠ±ΠΎΠΉ JSON `array` (Π² Python - `list`), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ… Pydantic:
+
+```Python
+images: List[Image]
+```
+
+Π² Python 3.9 ΠΈ Π²Ρ‹ΡˆΠ΅:
+
+```Python
+images: list[Image]
+```
+
+Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="13"
+    {!> ../../../docs_src/body_nested_models/tutorial008_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="15"
+    {!> ../../../docs_src/body_nested_models/tutorial008.py!}
+    ```
+
+## Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°
+
+И Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π²Π΅Π·Π΄Π΅.
+
+Π”Π°ΠΆΠ΅ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡΠΏΠΈΡΠΊΠΎΠ²:
+
+<img src="/img/tutorial/body-nested-models/image01.png">
+
+Π’Ρ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Π΅ΡΠ»ΠΈ Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ `dict`, Π° Π½Π΅ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic.
+
+Но Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΡΡ‚ΠΎΠΌ, Π²Ρ…одящиС ΡΠ»ΠΎΠ²Π°Ρ€ΠΈ Π°Π²Ρ‚оматичСски ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π° Π²Π°Ρˆ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ Π°Π²Ρ‚оматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON.
+
+## Π’Π΅Π»Π° Π·Π°ΠΏΡ€ΠΎΡΠΎΠ² Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡΠΌΠΈ (`dict` )
+
+Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠ° ΠΊΠ°ΠΊ `dict` Ρ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….
+
+Π‘Π΅Π· Π½Π΅ΠΎΠ±Ρ…одимости Π·Π½Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ся Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹ΠΌΠΈ Π΄Π»Ρ ΠΈΠΌΡ‘Π½ ΠΏΠΎΠ»Π΅ΠΉ/Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (ΠΊΠ°ΠΊ ΡΡ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic).
+
+Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅.
+
+---
+
+Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΡΠ»ΡƒΡ‡Π°ΠΉ - ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΡŽΡ‡ΠΈ Π±Ρ‹Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `int`.
+
+ИмСнно ΡΡ‚ΠΎ ΠΌΡ‹ ΡΠ΅ΠΉΡ‡Π°Ρ ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π·Π΄Π΅ΡΡŒ.
+
+Π’ ΡΡ‚ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ Π²Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ `dict`, ΠΏΠΎΠΊΠ° Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚ΠΈΠΏΠ° `int` ΡΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ Ρ‚ΠΈΠΏΠ° `float`:
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="7"
+    {!> ../../../docs_src/body_nested_models/tutorial009_py39.py!}
+    ```
+
+=== "Python 3.6+"
+
+    ```Python hl_lines="9"
+    {!> ../../../docs_src/body_nested_models/tutorial009.py!}
+    ```
+
+!!! tip "Π‘ΠΎΠ²Π΅Ρ‚"
+    Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ JSON ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚ΠΈΠΏΠ° `str`.
+
+    ΠΠΎ Pydantic ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π°Π²Ρ‚оматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….
+
+    Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Π°ΡˆΠ΅Π³ΠΎ API ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚Ρ€ΠΎΠΊΠΈ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΏΡ€ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΡΡ‚ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ Ρ†Π΅Π»Ρ‹Π΅ Ρ‡ΠΈΡΠ»Π°, Pydantic Π°Π²Ρ‚оматичСский ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅.
+
+    Π `dict`, Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `weights`, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Pydantic, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚ΠΈΠΏΠ° `int` ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠ° `float`.
+
+## Π Π΅Π·ΡŽΠΌΠ΅
+
+Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **FastAPI** Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic, ΡΠΎΡ…раняя ΠΏΡ€ΠΈ ΡΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ, ΠΊΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
+
+И Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅:
+
+* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° (Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎ Π²Π΅Π·Π΄Π΅!)
+* ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€ΡΠΈΠ½Π³ / ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ)
+* Π’Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…
+* Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΡΡ…Π΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
+* ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
index 9fb56ce1bb975da6ddd5798141795b19137eb8da..ecd3aead12fe00f547490c84e2455b00173bca04 100644 (file)
@@ -83,6 +83,7 @@ nav:
   - tutorial/static-files.md
   - tutorial/debugging.md
   - tutorial/schema-extra-example.md
+  - tutorial/body-nested-models.md
 - async.md
 - Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅:
   - deployment/index.md