]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/request-form-models.md` (...
authorValentyn <valentin.druzhinin@gmail.com>
Thu, 20 Feb 2025 14:16:09 +0000 (09:16 -0500)
committerGitHub <noreply@github.com>
Thu, 20 Feb 2025 14:16:09 +0000 (14:16 +0000)
docs/uk/docs/tutorial/request-form-models.md [new file with mode: 0644]

diff --git a/docs/uk/docs/tutorial/request-form-models.md b/docs/uk/docs/tutorial/request-form-models.md
new file mode 100644 (file)
index 0000000..7f5759e
--- /dev/null
@@ -0,0 +1,78 @@
+# ΠœΠΎΠ΄Π΅Π»Ρ– Ρ„ΠΎΡ€ΠΌ (Form Models)
+
+Π£ FastAPI Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ **Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–** Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ **ΠΏΠΎΠ»Ρ–Π² Ρ„ΠΎΡ€ΠΌΠΈ**.
+
+/// info | Π†Π½Ρ„ормація
+
+Π©ΠΎΠ± Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠΈ, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ <a href="https://github.com/Kludex/python-multipart" class="external-link" target="_blank">python-multipart</a>.
+
+ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ½Π°ΠΉΡ‚Π΅ΡΡ, Ρ‰ΠΎ Π’ΠΈ ΡΡ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ [Π²Ρ–Ρ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π΅ ΡΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΈΡ‰Π΅](../virtual-environments.md){.internal-link target=_blank}, Π°ΠΊΡ‚ΠΈΠ²ΡƒΠ²Π°Π»ΠΈ ΠΉΠΎΠ³ΠΎ, Π° ΠΏΠΎΡ‚Ρ–ΠΌ Π²ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄:
+
+```console
+$ pip install python-multipart
+```
+
+///
+
+/// note | ΠŸΡ–Π΄ΠΊΠ°Π·ΠΊΠ°
+
+Ця Ρ„ункція ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· FastAPI Π²Π΅Ρ€ΡΡ–Ρ— `0.113.0`. πŸ€“
+
+///
+
+## Π’икористання Pydantic-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π»Ρ Ρ„ΠΎΡ€ΠΌ
+
+Π’Π°ΠΌ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ **Pydantic-модСль** Π· ΠΏΠΎΠ»ΡΠΌΠΈ, ΡΠΊΡ– Π’ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ ΡΠΊ **поля Ρ„ΠΎΡ€ΠΌΠΈ**, Π° ΠΏΠΎΡ‚Ρ–ΠΌ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡΠΊ `Form`:
+
+{* ../../docs_src/request_form_models/tutorial001_an_py39.py hl[9:11,15] *}
+
+**FastAPI**  **витягнС** Π΄Π°Π½Ρ– Π΄Π»Ρ **ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ** Π· **Ρ„ΠΎΡ€ΠΌΠΎΠ²ΠΈΡ… Π΄Π°Π½ΠΈΡ…** Ρƒ Π·Π°ΠΏΠΈΡ‚Ρ– Ρ‚Π° Π½Π°Π΄Π°ΡΡ‚ΡŒ Π²Π°ΠΌ Pydantic-модСль, ΡΠΊΡƒ Π’ΠΈ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΠ»ΠΈ.
+
+## ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—
+
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚ΠΈ Ρ†Π΅ Π² UI Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— Π·Π° `/docs`:
+
+<div class="screenshot">
+<img src="/img/tutorial/request-form-models/image01.png">
+</div>
+
+## Π—Π°Π±ΠΎΡ€ΠΎΠ½Π° Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΈΡ… ΠΏΠΎΠ»Ρ–Π² Ρ„ΠΎΡ€ΠΌΠΈ
+
+Π£ Π΄Π΅ΡΠΊΠΈΡ… ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΈΡ… Π²ΠΈΠΏΠ°Π΄ΠΊΠ°Ρ… (ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, Ρ€Ρ–Π΄ΠΊΠΎ) Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ **ΠΎΠ±ΠΌΠ΅ΠΆΠΈΡ‚ΠΈ** Ρ„ΠΎΡ€ΠΌΡƒ Π»ΠΈΡˆΠ΅ Ρ‚ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ, ΡΠΊΡ– Π±ΡƒΠ»ΠΈ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Ρ– Π² Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–, Ρ– **Π·Π°Π±ΠΎΡ€ΠΎΠ½ΠΈΡ‚ΠΈ** Π±ΡƒΠ΄ΡŒ-які **Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ–** ΠΏΠΎΠ»Ρ.
+
+/// note | ΠŸΡ–Π΄ΠΊΠ°Π·ΠΊΠ°
+
+Ця Ρ„ункція ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· FastAPI Π²Π΅Ρ€ΡΡ–Ρ— `0.114.0`. πŸ€“
+
+///
+
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ‚ΠΈ ΠΊΠΎΠ½Ρ„Ρ–Π³ΡƒΡ€Π°Ρ†Ρ–ΡŽ Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–, Ρ‰ΠΎΠ± Π·Π°Π±ΠΎΡ€ΠΎΠ½ΠΈΡ‚ΠΈ `forbid` Π±ΡƒΠ΄ΡŒ-які Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– `extra` ΠΏΠΎΠ»Ρ:
+
+{* ../../docs_src/request_form_models/tutorial002_an_py39.py hl[12] *}
+
+Π―ΠΊΡ‰ΠΎ ΠΊΠ»Ρ–Ρ”Π½Ρ‚ ΡΠΏΡ€ΠΎΠ±ΡƒΡ” Π½Π°Π΄Ρ–слати Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– Π΄Π°Π½Ρ–, Π²Ρ–Π½ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ” **Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄ΡŒ Π· ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΡŽ**.
+
+Наприклад, ΡΠΊΡ‰ΠΎ ΠΊΠ»Ρ–Ρ”Π½Ρ‚ ΡΠΏΡ€ΠΎΠ±ΡƒΡ” Π½Π°Π΄Ρ–слати Π½Π°ΡΡ‚ΡƒΠΏΠ½Ρ– ΠΏΠΎΠ»Ρ Ρ„ΠΎΡ€ΠΌΠΈ:
+
+* `username`: `Rick`
+* `password`: `Portal Gun`
+* `extra`: `Mr. Poopybutthole`
+
+Π’Ρ–Π½ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ” Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄ΡŒ Ρ–Π· ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΡŽ, ΡΠΊΠ° ΠΏΠΎΠ²Ρ–домляє, Ρ‰ΠΎ ΠΏΠΎΠ»Π΅ `extra` Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ:
+
+```json
+{
+    "detail": [
+        {
+            "type": "extra_forbidden",
+            "loc": ["body", "extra"],
+            "msg": "Extra inputs are not permitted",
+            "input": "Mr. Poopybutthole"
+        }
+    ]
+}
+```
+
+## ΠŸΡ–дсумок
+
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ– Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ ΠΏΠΎΠ»Ρ–Π² Ρ„ΠΎΡ€ΠΌΠΈ Ρƒ FastAPI. πŸ˜Ž