]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
📝 Tweak docs and translations links, typos, format (#11389)
authorNils Lindemann <nilslindemann@tutanota.com>
Thu, 18 Apr 2024 19:53:19 +0000 (21:53 +0200)
committerGitHub <noreply@github.com>
Thu, 18 Apr 2024 19:53:19 +0000 (14:53 -0500)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
191 files changed:
docs/az/docs/fastapi-people.md
docs/em/docs/advanced/behind-a-proxy.md
docs/em/docs/advanced/events.md
docs/em/docs/advanced/path-operation-advanced-configuration.md
docs/em/docs/advanced/sub-applications.md
docs/em/docs/advanced/wsgi.md
docs/em/docs/async.md
docs/em/docs/deployment/concepts.md
docs/em/docs/deployment/docker.md
docs/em/docs/deployment/server-workers.md
docs/em/docs/fastapi-people.md
docs/em/docs/features.md
docs/em/docs/help-fastapi.md
docs/em/docs/how-to/custom-request-and-route.md
docs/em/docs/how-to/sql-databases-peewee.md
docs/em/docs/index.md
docs/em/docs/python-types.md
docs/em/docs/tutorial/bigger-applications.md
docs/em/docs/tutorial/body-updates.md
docs/em/docs/tutorial/body.md
docs/em/docs/tutorial/dependencies/dependencies-with-yield.md
docs/em/docs/tutorial/extra-models.md
docs/em/docs/tutorial/first-steps.md
docs/em/docs/tutorial/metadata.md
docs/em/docs/tutorial/query-params.md
docs/em/docs/tutorial/security/simple-oauth2.md
docs/em/docs/tutorial/sql-databases.md
docs/em/docs/tutorial/testing.md
docs/en/docs/advanced/behind-a-proxy.md
docs/en/docs/advanced/custom-response.md
docs/en/docs/advanced/dataclasses.md
docs/en/docs/advanced/events.md
docs/en/docs/advanced/generate-clients.md
docs/en/docs/advanced/openapi-callbacks.md
docs/en/docs/advanced/path-operation-advanced-configuration.md
docs/en/docs/advanced/settings.md
docs/en/docs/advanced/sub-applications.md
docs/en/docs/advanced/wsgi.md
docs/en/docs/alternatives.md
docs/en/docs/async.md
docs/en/docs/benchmarks.md
docs/en/docs/deployment/concepts.md
docs/en/docs/deployment/docker.md
docs/en/docs/deployment/server-workers.md
docs/en/docs/help-fastapi.md
docs/en/docs/how-to/async-sql-encode-databases.md
docs/en/docs/how-to/configure-swagger-ui.md
docs/en/docs/python-types.md
docs/en/docs/reference/apirouter.md
docs/en/docs/reference/background.md
docs/en/docs/reference/dependencies.md
docs/en/docs/reference/exceptions.md
docs/en/docs/reference/fastapi.md
docs/en/docs/reference/httpconnection.md
docs/en/docs/reference/middleware.md
docs/en/docs/reference/parameters.md
docs/en/docs/reference/request.md
docs/en/docs/reference/response.md
docs/en/docs/reference/responses.md
docs/en/docs/reference/security/index.md
docs/en/docs/reference/staticfiles.md
docs/en/docs/reference/status.md
docs/en/docs/reference/templating.md
docs/en/docs/reference/testclient.md
docs/en/docs/reference/uploadfile.md
docs/en/docs/reference/websockets.md
docs/en/docs/tutorial/bigger-applications.md
docs/en/docs/tutorial/body-updates.md
docs/en/docs/tutorial/dependencies/classes-as-dependencies.md
docs/en/docs/tutorial/dependencies/index.md
docs/en/docs/tutorial/extra-models.md
docs/en/docs/tutorial/response-model.md
docs/en/docs/tutorial/schema-extra-example.md
docs/en/docs/tutorial/security/oauth2-jwt.md
docs/en/docs/tutorial/security/simple-oauth2.md
docs/en/docs/tutorial/sql-databases.md
docs/en/docs/tutorial/testing.md
docs/es/docs/async.md
docs/es/docs/index.md
docs/es/docs/tutorial/first-steps.md
docs/es/docs/tutorial/index.md
docs/es/docs/tutorial/query-params.md
docs/fa/docs/advanced/sub-applications.md
docs/fa/docs/index.md
docs/fr/docs/advanced/additional-responses.md
docs/fr/docs/advanced/additional-status-codes.md
docs/fr/docs/advanced/index.md
docs/fr/docs/advanced/path-operation-advanced-configuration.md
docs/fr/docs/advanced/response-directly.md
docs/fr/docs/fastapi-people.md
docs/fr/docs/features.md
docs/fr/docs/index.md
docs/fr/docs/tutorial/path-params.md
docs/he/docs/index.md
docs/id/docs/tutorial/index.md
docs/ja/docs/async.md
docs/ja/docs/deployment/concepts.md
docs/ja/docs/deployment/docker.md
docs/ja/docs/deployment/server-workers.md
docs/ja/docs/fastapi-people.md
docs/ja/docs/features.md
docs/ja/docs/index.md
docs/ja/docs/tutorial/body-updates.md
docs/ja/docs/tutorial/body.md
docs/ja/docs/tutorial/dependencies/dependencies-with-yield.md
docs/ja/docs/tutorial/first-steps.md
docs/ja/docs/tutorial/query-params.md
docs/ja/docs/tutorial/security/first-steps.md
docs/ko/docs/async.md
docs/ko/docs/deployment/docker.md
docs/ko/docs/deployment/server-workers.md
docs/ko/docs/features.md
docs/ko/docs/index.md
docs/ko/docs/tutorial/body-fields.md
docs/ko/docs/tutorial/body.md
docs/ko/docs/tutorial/dependencies/index.md
docs/ko/docs/tutorial/first-steps.md
docs/ko/docs/tutorial/query-params.md
docs/ko/docs/tutorial/security/get-current-user.md
docs/pl/docs/features.md
docs/pl/docs/help-fastapi.md
docs/pl/docs/index.md
docs/pl/docs/tutorial/first-steps.md
docs/pt/docs/advanced/events.md
docs/pt/docs/async.md
docs/pt/docs/deployment/docker.md
docs/pt/docs/fastapi-people.md
docs/pt/docs/features.md
docs/pt/docs/help-fastapi.md
docs/pt/docs/index.md
docs/pt/docs/tutorial/body-multiple-params.md
docs/pt/docs/tutorial/body-nested-models.md
docs/pt/docs/tutorial/body.md
docs/pt/docs/tutorial/encoder.md
docs/pt/docs/tutorial/first-steps.md
docs/pt/docs/tutorial/index.md
docs/pt/docs/tutorial/path-params.md
docs/pt/docs/tutorial/query-params.md
docs/pt/docs/tutorial/security/first-steps.md
docs/ru/docs/async.md
docs/ru/docs/deployment/concepts.md
docs/ru/docs/deployment/docker.md
docs/ru/docs/deployment/versions.md
docs/ru/docs/fastapi-people.md
docs/ru/docs/features.md
docs/ru/docs/help-fastapi.md
docs/ru/docs/index.md
docs/ru/docs/tutorial/body-multiple-params.md
docs/ru/docs/tutorial/body.md
docs/ru/docs/tutorial/debugging.md
docs/ru/docs/tutorial/dependencies/index.md
docs/ru/docs/tutorial/first-steps.md
docs/ru/docs/tutorial/metadata.md
docs/ru/docs/tutorial/path-params-numeric-validations.md
docs/ru/docs/tutorial/query-params.md
docs/ru/docs/tutorial/static-files.md
docs/ru/docs/tutorial/testing.md
docs/tr/docs/async.md
docs/tr/docs/features.md
docs/tr/docs/index.md
docs/tr/docs/python-types.md
docs/tr/docs/tutorial/query-params.md
docs/uk/docs/alternatives.md
docs/uk/docs/fastapi-people.md
docs/uk/docs/python-types.md
docs/uk/docs/tutorial/encoder.md
docs/vi/docs/features.md
docs/vi/docs/index.md
docs/vi/docs/python-types.md
docs/yo/docs/index.md
docs/zh/docs/advanced/behind-a-proxy.md
docs/zh/docs/advanced/events.md
docs/zh/docs/advanced/response-headers.md
docs/zh/docs/advanced/sub-applications.md
docs/zh/docs/advanced/wsgi.md
docs/zh/docs/async.md
docs/zh/docs/deployment/concepts.md
docs/zh/docs/deployment/docker.md
docs/zh/docs/deployment/server-workers.md
docs/zh/docs/fastapi-people.md
docs/zh/docs/features.md
docs/zh/docs/help-fastapi.md
docs/zh/docs/index.md
docs/zh/docs/tutorial/bigger-applications.md
docs/zh/docs/tutorial/body-updates.md
docs/zh/docs/tutorial/body.md
docs/zh/docs/tutorial/dependencies/dependencies-with-yield.md
docs/zh/docs/tutorial/metadata.md
docs/zh/docs/tutorial/query-params.md
docs/zh/docs/tutorial/security/simple-oauth2.md
docs/zh/docs/tutorial/testing.md

index 2ca8e109ee9c7683c3359f557609497e173ad401..60494f19152ff177c3126a02e946effe0adab7df 100644 (file)
@@ -119,7 +119,7 @@ Başqalarının Pull Request-lərinə **Ən çox rəy verənlər** 🕵️ kodun
 
 Bunlar **Sponsorlar**dır. 😎
 
-Onlar mənim **FastAPI** (və digər) işlərimi əsasən <a href="hhttps://github.com/sponsors/tiangolo" class="external-link" target="_blank">GitHub Sponsorlar</a> vasitəsilə dəstəkləyirlər.
+Onlar mənim **FastAPI** (və digər) işlərimi əsasən <a href="https://github.com/sponsors/tiangolo" class="external-link" target="_blank">GitHub Sponsorlar</a> vasitəsilə dəstəkləyirlər.
 
 {% if sponsors %}
 
index 12afe638c6ae807dad8dac96e6d3eefd5adda71a..e3fd2673543ab0b801656b49c908749c798af928 100644 (file)
@@ -341,6 +341,6 @@ $ uvicorn main:app --root-path /api/v1
 
 ## 🗜 🎧-🈸
 
-🚥 👆 💪 🗻 🎧-🈸 (🔬 [🎧 🈸 - 🗻](./sub-applications.md){.internal-link target=_blank}) ⏪ ⚙️ 🗳 ⏮️ `root_path`, 👆 💪 ⚫️ 🛎, 👆 🔜 ⌛.
+🚥 👆 💪 🗻 🎧-🈸 (🔬 [🎧 🈸 - 🗻](sub-applications.md){.internal-link target=_blank}) ⏪ ⚙️ 🗳 ⏮️ `root_path`, 👆 💪 ⚫️ 🛎, 👆 🔜 ⌛.
 
 FastAPI 🔜 🔘 ⚙️ `root_path` 🎆, ⚫️ 🔜 👷. 👶
index 671e81b186efd240ea53b0181a8c097065a9b767..19421ff58a93325e3fc30c8685a4b9a1f30c7c10 100644 (file)
@@ -157,4 +157,4 @@ async with lifespan(app):
 
 ## 🎧 🈸
 
-👶 ✔️ 🤯 👈 👫 🔆 🎉 (🕴 &amp; 🤫) 🔜 🕴 🛠️ 👑 🈸, 🚫 [🎧 🈸 - 🗻](./sub-applications.md){.internal-link target=_blank}.
+👶 ✔️ 🤯 👈 👫 🔆 🎉 (🕴 &amp; 🤫) 🔜 🕴 🛠️ 👑 🈸, 🚫 [🎧 🈸 - 🗻](sub-applications.md){.internal-link target=_blank}.
index ec72318706feef150af1f920b5895e028338f9be..3dc5ac536adbf635fa7b9c95a89cbe1eb6954504 100644 (file)
@@ -59,7 +59,7 @@
 
 👆 💪 📣 🌖 📨 ⏮️ 👫 🏷, 👔 📟, ♒️.
 
-📤 🎂 📃 📥 🧾 🔃 ⚫️, 👆 💪 ✍ ⚫️ [🌖 📨 🗄](./additional-responses.md){.internal-link target=_blank}.
+📤 🎂 📃 📥 🧾 🔃 ⚫️, 👆 💪 ✍ ⚫️ [🌖 📨 🗄](additional-responses.md){.internal-link target=_blank}.
 
 ## 🗄 ➕
 
@@ -77,7 +77,7 @@
 !!! tip
     👉 🔅 🎚 ↔ ☝.
 
-    🚥 👆 🕴 💪 📣 🌖 📨, 🌅 🏪 🌌 ⚫️ ⏮️ [🌖 📨 🗄](./additional-responses.md){.internal-link target=_blank}.
+    🚥 👆 🕴 💪 📣 🌖 📨, 🌅 🏪 🌌 ⚫️ ⏮️ [🌖 📨 🗄](additional-responses.md){.internal-link target=_blank}.
 
 👆 💪 ↔ 🗄 🔗 *➡ 🛠️* ⚙️ 🔢 `openapi_extra`.
 
index e0391453beb1278b7f097c6c62bb888a654335f3..1e0931f95fad280c51b1ae9fd451118119b6670b 100644 (file)
@@ -70,4 +70,4 @@ $ uvicorn main:app --reload
 
 &amp; 🎧-🈸 💪 ✔️ 🚮 👍 📌 🎧-🈸 &amp; 🌐 🔜 👷 ☑, ↩️ FastAPI 🍵 🌐 👉 `root_path`Ⓜ 🔁.
 
-👆 🔜 💡 🌅 🔃 `root_path` &amp; ❔ ⚙️ ⚫️ 🎯 📄 🔃 [⛅ 🗳](./behind-a-proxy.md){.internal-link target=_blank}.
+👆 🔜 💡 🌅 🔃 `root_path` &amp; ❔ ⚙️ ⚫️ 🎯 📄 🔃 [⛅ 🗳](behind-a-proxy.md){.internal-link target=_blank}.
index 4d051807fbeac73d7f30f89150b2d8c808182de8..6a4ed073c2d616533727322ccd05941a2da35a76 100644 (file)
@@ -1,6 +1,6 @@
 # ✅ 🇨🇻 - 🏺, ✳, 🎏
 
-👆 💪 🗻 🇨🇻 🈸 👆 👀 ⏮️ [🎧 🈸 - 🗻](./sub-applications.md){.internal-link target=_blank}, [⛅ 🗳](./behind-a-proxy.md){.internal-link target=_blank}.
+👆 💪 🗻 🇨🇻 🈸 👆 👀 ⏮️ [🎧 🈸 - 🗻](sub-applications.md){.internal-link target=_blank}, [⛅ 🗳](behind-a-proxy.md){.internal-link target=_blank}.
 
 👈, 👆 💪 ⚙️ `WSGIMiddleware` &amp; ⚙️ ⚫️ 🎁 👆 🇨🇻 🈸, 🖼, 🏺, ✳, ♒️.
 
index bed31c3e7deea5ede4105b572d2ff332d9597187..0db497f403bc41d0edc9e60e86231f4e36b3acf2 100644 (file)
@@ -405,15 +405,15 @@ async def read_burgers():
 
 🚥 👆 👟 ⚪️➡️ ➕1️⃣ 🔁 🛠️ 👈 🔨 🚫 👷 🌌 🔬 🔛 &amp; 👆 ⚙️ ⚖ 🙃 📊-🕴 *➡ 🛠️ 🔢* ⏮️ ✅ `def` 🤪 🎭 📈 (🔃 1️⃣0️⃣0️⃣ 💓), 🙏 🗒 👈 **FastAPI** ⭐ 🔜 🔄. 👫 💼, ⚫️ 👻 ⚙️ `async def` 🚥 👆 *➡ 🛠️ 🔢* ⚙️ 📟 👈 🎭 🚧 <abbr title="Input/Output: disk reading or writing, network communications.">👤/🅾</abbr>.
 
-, 👯‍♂️ ⚠, 🤞 👈 **FastAPI** 🔜 [⏩](index.md#performance){.internal-link target=_blank} 🌘 (⚖️ 🌘 ⭐) 👆 ⏮️ 🛠️.
+, 👯‍♂️ ⚠, 🤞 👈 **FastAPI** 🔜 [⏩](index.md#_15){.internal-link target=_blank} 🌘 (⚖️ 🌘 ⭐) 👆 ⏮️ 🛠️.
 
 ### 🔗
 
-🎏 ✔ [🔗](./tutorial/dependencies/index.md){.internal-link target=_blank}. 🚥 🔗 🐩 `def` 🔢 ↩️ `async def`, ⚫️ 🏃 🔢 🧵.
+🎏 ✔ [🔗](tutorial/dependencies/index.md){.internal-link target=_blank}. 🚥 🔗 🐩 `def` 🔢 ↩️ `async def`, ⚫️ 🏃 🔢 🧵.
 
 ### 🎧-🔗
 
-👆 💪 ✔️ 💗 🔗 &amp; [🎧-🔗](./tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} 🚫 🔠 🎏 (🔢 🔢 🔑), 👫 💪 ✍ ⏮️ `async def` &amp; ⏮️ 😐 `def`. ⚫️ 🔜 👷, &amp; 🕐 ✍ ⏮️ 😐 `def` 🔜 🤙 🔛 🔢 🧵 (⚪️➡️ 🧵) ↩️ ➖ "⌛".
+👆 💪 ✔️ 💗 🔗 &amp; [🎧-🔗](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} 🚫 🔠 🎏 (🔢 🔢 🔑), 👫 💪 ✍ ⏮️ `async def` &amp; ⏮️ 😐 `def`. ⚫️ 🔜 👷, &amp; 🕐 ✍ ⏮️ 😐 `def` 🔜 🤙 🔛 🔢 🧵 (⚪️➡️ 🧵) ↩️ ➖ "⌛".
 
 ### 🎏 🚙 🔢
 
@@ -427,4 +427,4 @@ async def read_burgers():
 
 🔄, 👉 📶 📡 ℹ 👈 🔜 🎲 ⚠ 🚥 👆 👟 🔎 👫.
 
-⏪, 👆 🔜 👍 ⏮️ 📄 ⚪️➡️ 📄 🔛: <a href="#in-a-hurry">🏃 ❓</a>.
+⏪, 👆 🔜 👍 ⏮️ 📄 ⚪️➡️ 📄 🔛: <a href="#_2">🏃 ❓</a>.
index 162b68615a877b4eb9c6e060a179151f7e20e367..b0f86cb5ee0175806936ece55b51e2d0ebd2b785 100644 (file)
@@ -25,7 +25,7 @@
 
 ## 💂‍♂ - 🇺🇸🔍
 
-[⏮️ 📃 🔃 🇺🇸🔍](./https.md){.internal-link target=_blank} 👥 🇭🇲 🔃 ❔ 🇺🇸🔍 🚚 🔐 👆 🛠️.
+[⏮️ 📃 🔃 🇺🇸🔍](https.md){.internal-link target=_blank} 👥 🇭🇲 🔃 ❔ 🇺🇸🔍 🚚 🔐 👆 🛠️.
 
 👥 👀 👈 🇺🇸🔍 🛎 🚚 🦲 **🔢** 👆 🈸 💽, **🤝 ❎ 🗳**.
 
 
 ### 👨‍🏭 🛠️ &amp; ⛴
 
-💭 ⚪️➡️ 🩺 [🔃 🇺🇸🔍](./https.md){.internal-link target=_blank} 👈 🕴 1️⃣ 🛠️ 💪 👂 🔛 1️⃣ 🌀 ⛴ &amp; 📢 📢 💽 ❓
+💭 ⚪️➡️ 🩺 [🔃 🇺🇸🔍](https.md){.internal-link target=_blank} 👈 🕴 1️⃣ 🛠️ 💪 👂 🔛 1️⃣ 🌀 ⛴ &amp; 📢 📢 💽 ❓
 
 👉 ☑.
 
 !!! tip
     🚫 😟 🚥 👫 🏬 🔃 **📦**, ☁, ⚖️ Kubernetes 🚫 ⚒ 📚 🔑.
 
-    👤 🔜 💬 👆 🌅 🔃 📦 🖼, ☁, Kubernetes, ♒️. 🔮 📃: [FastAPI 📦 - ☁](./docker.md){.internal-link target=_blank}.
+    👤 🔜 💬 👆 🌅 🔃 📦 🖼, ☁, Kubernetes, ♒️. 🔮 📃: [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank}.
 
 ## ⏮️ 🔁 ⏭ ▶️
 
     * 👆 🔜 💪 🌌 ▶️/⏏ *👈* 🎉 ✍, 🔍 ❌, ♒️.
 
 !!! tip
-    👤 🔜 🤝 👆 🌅 🧱 🖼 🔨 👉 ⏮️ 📦 🔮 📃: [FastAPI 📦 - ☁](./docker.md){.internal-link target=_blank}.
+    👤 🔜 🤝 👆 🌅 🧱 🖼 🔨 👉 ⏮️ 📦 🔮 📃: [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank}.
 
 ## ℹ 🛠️
 
index f28735ed7194a4ef2841dc48ffd869e83ae38a08..091eb3babdafeb75b467012b533f2f2489a3e6d1 100644 (file)
@@ -5,7 +5,7 @@
 ⚙️ 💾 📦 ✔️ 📚 📈 ✅ **💂‍♂**, **🔬**, **🦁**, &amp; 🎏.
 
 !!! tip
-    🏃 &amp; ⏪ 💭 👉 💩 ❓ 🦘 [`Dockerfile` 🔛 👶](#build-a-docker-image-for-fastapi).
+    🏃 &amp; ⏪ 💭 👉 💩 ❓ 🦘 [`Dockerfile` 🔛 👶](#fastapi).
 
 <details>
 <summary>📁 🎮 👶</summary>
@@ -108,7 +108,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
 
 🌅 ⚠ 🌌 ⚫️ ✔️ 📁 `requirements.txt` ⏮️ 📦 📛 &amp; 👫 ⏬, 1️⃣ 📍 ⏸.
 
-👆 🔜 ↗️ ⚙️ 🎏 💭 👆 ✍ [🔃 FastAPI ⏬](./versions.md){.internal-link target=_blank} ⚒ ↔ ⏬.
+👆 🔜 ↗️ ⚙️ 🎏 💭 👆 ✍ [🔃 FastAPI ⏬](versions.md){.internal-link target=_blank} ⚒ ↔ ⏬.
 
 🖼, 👆 `requirements.txt` 💪 👀 💖:
 
@@ -373,7 +373,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## 🛠️ 🔧
 
-➡️ 💬 🔄 🔃 🎏 [🛠️ 🔧](./concepts.md){.internal-link target=_blank} ⚖ 📦.
+➡️ 💬 🔄 🔃 🎏 [🛠️ 🔧](concepts.md){.internal-link target=_blank} ⚖ 📦.
 
 📦 ✴️ 🧰 📉 🛠️ **🏗 &amp; 🛠️** 🈸, ✋️ 👫 🚫 🛠️ 🎯 🎯 🍵 👉 **🛠️ 🔧**, &amp; 📤 📚 💪 🎛.
 
@@ -415,7 +415,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 1️⃣ 📚 📎 📦 🧾 ⚙️ 💖 Kubernetes 🛎 ✔️ 🛠️ 🌌 🚚 **🧬 📦** ⏪ 🔗 **📐 ⚖** 📨 📨. 🌐 **🌑 🎚**.
 
-📚 💼, 👆 🔜 🎲 💚 🏗 **☁ 🖼 ⚪️➡️ 🖌** [🔬 🔛](#dockerfile), ❎ 👆 🔗, &amp; 🏃‍♂ **👁 Uvicorn 🛠️** ↩️ 🏃‍♂ 🕳 💖 🐁 ⏮️ Uvicorn 👨‍🏭.
+📚 💼, 👆 🔜 🎲 💚 🏗 **☁ 🖼 ⚪️➡️ 🖌** [🔬 🔛](#_6), ❎ 👆 🔗, &amp; 🏃‍♂ **👁 Uvicorn 🛠️** ↩️ 🏃‍♂ 🕳 💖 🐁 ⏮️ Uvicorn 👨‍🏭.
 
 ### 📐 ⚙
 
@@ -450,7 +450,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ↗️, 📤 **🎁 💼** 🌐❔ 👆 💪 💚 ✔️ **📦** ⏮️ **🐁 🛠️ 👨‍💼** ▶️ 📚 **Uvicorn 👨‍🏭 🛠️** 🔘.
 
-📚 💼, 👆 💪 ⚙️ **🛂 ☁ 🖼** 👈 🔌 **🐁** 🛠️ 👨‍💼 🏃‍♂ 💗 **Uvicorn 👨‍🏭 🛠️**, &amp; 🔢 ⚒ 🔆 🔢 👨‍🏭 ⚓️ 🔛 ⏮️ 💽 🐚 🔁. 👤 🔜 💬 👆 🌅 🔃 ⚫️ 🔛 [🛂 ☁ 🖼 ⏮️ 🐁 - Uvicorn](#official-docker-image-with-gunicorn-uvicorn).
+📚 💼, 👆 💪 ⚙️ **🛂 ☁ 🖼** 👈 🔌 **🐁** 🛠️ 👨‍💼 🏃‍♂ 💗 **Uvicorn 👨‍🏭 🛠️**, &amp; 🔢 ⚒ 🔆 🔢 👨‍🏭 ⚓️ 🔛 ⏮️ 💽 🐚 🔁. 👤 🔜 💬 👆 🌅 🔃 ⚫️ 🔛 [🛂 ☁ 🖼 ⏮️ 🐁 - Uvicorn](#-uvicorn).
 
 📥 🖼 🕐❔ 👈 💪 ⚒ 🔑:
 
@@ -514,14 +514,14 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## 🛂 ☁ 🖼 ⏮️ 🐁 - Uvicorn
 
-📤 🛂 ☁ 🖼 👈 🔌 🐁 🏃‍♂ ⏮️ Uvicorn 👨‍🏭, ℹ ⏮️ 📃: [💽 👨‍🏭 - 🐁 ⏮️ Uvicorn](./server-workers.md){.internal-link target=_blank}.
+📤 🛂 ☁ 🖼 👈 🔌 🐁 🏃‍♂ ⏮️ Uvicorn 👨‍🏭, ℹ ⏮️ 📃: [💽 👨‍🏭 - 🐁 ⏮️ Uvicorn](server-workers.md){.internal-link target=_blank}.
 
-👉 🖼 🔜 ⚠ ✴️ ⚠ 🔬 🔛: [📦 ⏮️ 💗 🛠️ &amp; 🎁 💼](#containers-with-multiple-processes-and-special-cases).
+👉 🖼 🔜 ⚠ ✴️ ⚠ 🔬 🔛: [📦 ⏮️ 💗 🛠️ &amp; 🎁 💼](#_18).
 
 * <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-🐁-fastapi</a>.
 
 !!! warning
-    📤 ↕ 🤞 👈 👆 **🚫** 💪 👉 🧢 🖼 ⚖️ 🙆 🎏 🎏 1️⃣, &amp; 🔜 👻 📆 🏗 🖼 ⚪️➡️ 🖌 [🔬 🔛: 🏗 ☁ 🖼 FastAPI](#build-a-docker-image-for-fastapi).
+    📤 ↕ 🤞 👈 👆 **🚫** 💪 👉 🧢 🖼 ⚖️ 🙆 🎏 🎏 1️⃣, &amp; 🔜 👻 📆 🏗 🖼 ⚪️➡️ 🖌 [🔬 🔛: 🏗 ☁ 🖼 FastAPI](#fastapi).
 
 👉 🖼 ✔️ **🚘-📳** 🛠️ 🔌 ⚒ **🔢 👨‍🏭 🛠️** ⚓️ 🔛 💽 🐚 💪.
 
@@ -574,9 +574,9 @@ COPY ./app /app/app
 
 ### 🕐❔ ⚙️
 
-👆 🔜 🎲 **🚫** ⚙️ 👉 🛂 🧢 🖼 (⚖️ 🙆 🎏 🎏 1️⃣) 🚥 👆 ⚙️ **Kubernetes** (⚖️ 🎏) &amp; 👆 ⏪ ⚒ **🧬** 🌑 🎚, ⏮️ 💗 **📦**. 📚 💼, 👆 👍 📆 **🏗 🖼 ⚪️➡️ 🖌** 🔬 🔛: [🏗 ☁ 🖼 FastAPI](#build-a-docker-image-for-fastapi).
+👆 🔜 🎲 **🚫** ⚙️ 👉 🛂 🧢 🖼 (⚖️ 🙆 🎏 🎏 1️⃣) 🚥 👆 ⚙️ **Kubernetes** (⚖️ 🎏) &amp; 👆 ⏪ ⚒ **🧬** 🌑 🎚, ⏮️ 💗 **📦**. 📚 💼, 👆 👍 📆 **🏗 🖼 ⚪️➡️ 🖌** 🔬 🔛: [🏗 ☁ 🖼 FastAPI](#fastapi).
 
-👉 🖼 🔜 ⚠ ✴️ 🎁 💼 🔬 🔛 [📦 ⏮️ 💗 🛠️ &amp; 🎁 💼](#containers-with-multiple-processes-and-special-cases). 🖼, 🚥 👆 🈸 **🙅 🥃** 👈 ⚒ 🔢 🔢 🛠️ ⚓️ 🔛 💽 👷 👍, 👆 🚫 💚 😥 ⏮️ ❎ 🛠️ 🧬 🌑 🎚, &amp; 👆 🚫 🏃 🌅 🌘 1️⃣ 📦 ⏮️ 👆 📱. ⚖️ 🚥 👆 🛠️ ⏮️ **☁ ✍**, 🏃 🔛 👁 💽, ♒️.
+👉 🖼 🔜 ⚠ ✴️ 🎁 💼 🔬 🔛 [📦 ⏮️ 💗 🛠️ &amp; 🎁 💼](#_18). 🖼, 🚥 👆 🈸 **🙅 🥃** 👈 ⚒ 🔢 🔢 🛠️ ⚓️ 🔛 💽 👷 👍, 👆 🚫 💚 😥 ⏮️ ❎ 🛠️ 🧬 🌑 🎚, &amp; 👆 🚫 🏃 🌅 🌘 1️⃣ 📦 ⏮️ 👆 📱. ⚖️ 🚥 👆 🛠️ ⏮️ **☁ ✍**, 🏃 🔛 👁 💽, ♒️.
 
 ## 🛠️ 📦 🖼
 
index b7e58c4f4714c0e3b3f3d6534849340f92f4e6ad..43998bc4990b7482030e329dde87899e05a40229 100644 (file)
 
 🕐❔ 🛠️ 🈸 👆 🔜 🎲 💚 ✔️ **🧬 🛠️** ✊ 📈 **💗 🐚** &amp; 💪 🍵 🌅 📨.
 
-👆 👀 ⏮️ 📃 🔃 [🛠️ 🔧](./concepts.md){.internal-link target=_blank}, 📤 💗 🎛 👆 💪 ⚙️.
+👆 👀 ⏮️ 📃 🔃 [🛠️ 🔧](concepts.md){.internal-link target=_blank}, 📤 💗 🎛 👆 💪 ⚙️.
 
 📥 👤 🔜 🎦 👆 ❔ ⚙️ <a href="https://gunicorn.org/" class="external-link" target="_blank">**🐁**</a> ⏮️ **Uvicorn 👨‍🏭 🛠️**.
 
 !!! info
-    🚥 👆 ⚙️ 📦, 🖼 ⏮️ ☁ ⚖️ Kubernetes, 👤 🔜 💬 👆 🌅 🔃 👈 ⏭ 📃: [FastAPI 📦 - ☁](./docker.md){.internal-link target=_blank}.
+    🚥 👆 ⚙️ 📦, 🖼 ⏮️ ☁ ⚖️ Kubernetes, 👤 🔜 💬 👆 🌅 🔃 👈 ⏭ 📃: [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank}.
 
     🎯, 🕐❔ 🏃 🔛 **Kubernetes** 👆 🔜 🎲 **🚫** 💚 ⚙️ 🐁 &amp; ↩️ 🏃 **👁 Uvicorn 🛠️ 📍 📦**, ✋️ 👤 🔜 💬 👆 🔃 ⚫️ ⏪ 👈 📃.
 
@@ -163,7 +163,7 @@ $ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
 
 ## 📦 &amp; ☁
 
-⏭ 📃 🔃 [FastAPI 📦 - ☁](./docker.md){.internal-link target=_blank} 👤 🔜 💬 🎛 👆 💪 ⚙️ 🍵 🎏 **🛠️ 🔧**.
+⏭ 📃 🔃 [FastAPI 📦 - ☁](docker.md){.internal-link target=_blank} 👤 🔜 💬 🎛 👆 💪 ⚙️ 🍵 🎏 **🛠️ 🔧**.
 
 👤 🔜 🎦 👆 **🛂 ☁ 🖼** 👈 🔌 **🐁 ⏮️ Uvicorn 👨‍🏭** &amp; 🔢 📳 👈 💪 ⚠ 🙅 💼.
 
index ec1d4c47ced535d197c5a438d04a039a8fbc8be8..d3c7d2038f89614cbbf2f61817d16be03773baa1 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # FastAPI 👫👫
 
 FastAPI ✔️ 🎆 👪 👈 🙋 👫👫 ⚪️➡️ 🌐 🖥.
@@ -18,7 +23,7 @@ FastAPI ✔️ 🎆 👪 👈 🙋 👫👫 ⚪️➡️ 🌐 🖥.
 </div>
 {% endif %}
 
-👤 👼 &amp; 🐛 **FastAPI**. 👆 💪 ✍ 🌅 🔃 👈 [ℹ FastAPI - 🤚 ℹ - 🔗 ⏮️ 📕](help-fastapi.md#connect-with-the-author){.internal-link target=_blank}.
+👤 👼 &amp; 🐛 **FastAPI**. 👆 💪 ✍ 🌅 🔃 👈 [ℹ FastAPI - 🤚 ℹ - 🔗 ⏮️ 📕](help-fastapi.md#_3){.internal-link target=_blank}.
 
 ...✋️ 📥 👤 💚 🎦 👆 👪.
 
@@ -28,15 +33,15 @@ FastAPI ✔️ 🎆 👪 👈 🙋 👫👫 ⚪️➡️ 🌐 🖥.
 
 👫 👫👫 👈:
 
-* [ℹ 🎏 ⏮️ ❔ 📂](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank}.
-* [✍ 🚲 📨](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}.
-* 📄 🚲 📨, [✴️ ⚠ ✍](contributing.md#translations){.internal-link target=_blank}.
+* [ℹ 🎏 ⏮️ ❔ 📂](help-fastapi.md#i){.internal-link target=_blank}.
+* [✍ 🚲 📨](help-fastapi.md#_15){.internal-link target=_blank}.
+* 📄 🚲 📨, [✴️ ⚠ ✍](contributing.md#_9){.internal-link target=_blank}.
 
 👏 👫. 👶 👶
 
 ## 🌅 🦁 👩‍💻 🏁 🗓️
 
-👫 👩‍💻 👈 ✔️ [🤝 🎏 🏆 ⏮️ ❔ 📂](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} ⏮️ 🏁 🗓️. 👶
+👫 👩‍💻 👈 ✔️ [🤝 🎏 🏆 ⏮️ ❔ 📂](help-fastapi.md#i){.internal-link target=_blank} ⏮️ 🏁 🗓️. 👶
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -52,7 +57,7 @@ FastAPI ✔️ 🎆 👪 👈 🙋 👫👫 ⚪️➡️ 🌐 🖥.
 
 📥 **FastAPI 🕴**. 👶
 
-👫 👩‍💻 👈 ✔️ [ℹ 🎏 🏆 ⏮️ ❔ 📂](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} 🔘 *🌐 🕰*.
+👫 👩‍💻 👈 ✔️ [ℹ 🎏 🏆 ⏮️ ❔ 📂](help-fastapi.md#i){.internal-link target=_blank} 🔘 *🌐 🕰*.
 
 👫 ✔️ 🎦 🕴 🤝 📚 🎏. 👶
 
@@ -70,7 +75,7 @@ FastAPI ✔️ 🎆 👪 👈 🙋 👫👫 ⚪️➡️ 🌐 🖥.
 
 📥 **🔝 👨‍🔬**. 👶
 
-👉 👩‍💻 ✔️ [✍ 🏆 🚲 📨](help-fastapi.md#create-a-pull-request){.internal-link target=_blank} 👈 ✔️ *🔗*.
+👉 👩‍💻 ✔️ [✍ 🏆 🚲 📨](help-fastapi.md#_15){.internal-link target=_blank} 👈 ✔️ *🔗*.
 
 👫 ✔️ 📉 ℹ 📟, 🧾, ✍, ♒️. 👶
 
@@ -92,7 +97,7 @@ FastAPI ✔️ 🎆 👪 👈 🙋 👫👫 ⚪️➡️ 🌐 🖥.
 
 ### 📄 ✍
 
-👤 🕴 💬 👩‍❤‍👨 🇪🇸 (&amp; 🚫 📶 👍 👶). , 👨‍🔬 🕐 👈 ✔️ [**🏋️ ✔ ✍**](contributing.md#translations){.internal-link target=_blank} 🧾. 🍵 👫, 📤 🚫🔜 🧾 📚 🎏 🇪🇸.
+👤 🕴 💬 👩‍❤‍👨 🇪🇸 (&amp; 🚫 📶 👍 👶). , 👨‍🔬 🕐 👈 ✔️ [**🏋️ ✔ ✍**](contributing.md#_9){.internal-link target=_blank} 🧾. 🍵 👫, 📤 🚫🔜 🧾 📚 🎏 🇪🇸.
 
 ---
 
index 3693f4c54d97a50a275f15b644a0268befe5cb63..6ef7c5ccc42e4faf307fdae75a595ca71784e195 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # ⚒
 
 ## FastAPI ⚒
index da452abf4c9a9a75443db9d80a02c07be71460de..fbb9ca9a903ce22b06128d5f0da7616a50305af2 100644 (file)
@@ -78,7 +78,7 @@
 
 📚 💼 👆 5️⃣📆 ⏪ 💭 ❔ 📚 ❔. 👶
 
-🚥 👆 🤝 📚 👫👫 ⏮️ 👫 ❔, 👆 🔜 ▶️️ 🛂 [FastAPI 🕴](fastapi-people.md#experts){.internal-link target=_blank}. 👶
+🚥 👆 🤝 📚 👫👫 ⏮️ 👫 ❔, 👆 🔜 ▶️️ 🛂 [FastAPI 🕴](fastapi-people.md#_2){.internal-link target=_blank}. 👶
 
 💭, 🏆 ⚠ ☝: 🔄 😇. 👫👫 👟 ⏮️ 👫 😩 &amp; 📚 💼 🚫 💭 🏆 🌌, ✋️ 🔄 🏆 👆 💪 😇. 👶
 
 * 🔧 🤭 👆 🔎 🔛 🧾.
 * 💰 📄, 📹, ⚖️ 📻 👆 ✍ ⚖️ 🔎 🔃 FastAPI <a href="https://github.com/tiangolo/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">✍ 👉 📁</a>.
     * ⚒ 💭 👆 🚮 👆 🔗 ▶️ 🔗 📄.
-* ℹ [💬 🧾](contributing.md#translations){.internal-link target=_blank} 👆 🇪🇸.
+* ℹ [💬 🧾](contributing.md#_9){.internal-link target=_blank} 👆 🇪🇸.
     * 👆 💪 ℹ 📄 ✍ ✍ 🎏.
 * 🛠️ 🆕 🧾 📄.
 * 🔧 ♻ ❔/🐛.
 
 👑 📋 👈 👆 💪 ▶️️ 🔜:
 
-* [ℹ 🎏 ⏮️ ❔ 📂](#help-others-with-questions-in-github){.internal-link target=_blank} (👀 📄 🔛).
-* [📄 🚲 📨](#review-pull-requests){.internal-link target=_blank} (👀 📄 🔛).
+* [ℹ 🎏 ⏮️ ❔ 📂](#i){.internal-link target=_blank} (👀 📄 🔛).
+* [📄 🚲 📨](#i){.internal-link target=_blank} (👀 📄 🔛).
 
 👈 2️⃣ 📋 ⚫️❔ **🍴 🕰 🏆**. 👈 👑 👷 🏆 FastAPI.
 
 🛑 👶 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">😧 💬 💽</a> 👶 &amp; 🤙 👅 ⏮️ 🎏 FastAPI 👪.
 
 !!! tip
-    ❔, 💭 👫 <a href="https://github.com/tiangolo/fastapi/discussions/new?category=questions" class="external-link" target="_blank">📂 💬</a>, 📤 🌅 👍 🤞 👆 🔜 📨 ℹ [FastAPI 🕴](fastapi-people.md#experts){.internal-link target=_blank}.
+    ❔, 💭 👫 <a href="https://github.com/tiangolo/fastapi/discussions/new?category=questions" class="external-link" target="_blank">📂 💬</a>, 📤 🌅 👍 🤞 👆 🔜 📨 ℹ [FastAPI 🕴](fastapi-people.md#_2){.internal-link target=_blank}.
 
     ⚙️ 💬 🕴 🎏 🏢 💬.
 
 
 📂, 📄 🔜 🦮 👆 ✍ ▶️️ ❔ 👈 👆 💪 🌖 💪 🤚 👍 ❔, ⚖️ ❎ ⚠ 👆 ⏭ 💬. &amp; 📂 👤 💪 ⚒ 💭 👤 🕧 ❔ 🌐, 🚥 ⚫️ ✊ 🕰. 👤 💪 🚫 🤙 👈 ⏮️ 💬 ⚙️. 👶
 
-💬 💬 ⚙️ 🚫 💪 📇 📂, ❔ &amp; ❔ 5️⃣📆 🤚 💸 💬. &amp; 🕴 🕐 📂 💯 ▶️️ [FastAPI 🕴](fastapi-people.md#experts){.internal-link target=_blank}, 👆 🔜 🌅 🎲 📨 🌅 🙋 📂.
+💬 💬 ⚙️ 🚫 💪 📇 📂, ❔ &amp; ❔ 5️⃣📆 🤚 💸 💬. &amp; 🕴 🕐 📂 💯 ▶️️ [FastAPI 🕴](fastapi-people.md#_2){.internal-link target=_blank}, 👆 🔜 🌅 🎲 📨 🌅 🙋 📂.
 
 🔛 🎏 🚄, 📤 💯 👩‍💻 💬 ⚙️, 📤 ↕ 🤞 👆 🔜 🔎 👱 💬 📤, 🌖 🌐 🕰. 👶
 
index d6fafa2ea655857caffbffa8af48a7b94ecb54d6..2d33d4feb361711f0f3c535048fc04992c28a45b 100644 (file)
@@ -28,7 +28,7 @@
 ### ✍ 🛃 `GzipRequest` 🎓
 
 !!! tip
-    👉 🧸 🖼 🎦 ❔ ⚫️ 👷, 🚥 👆 💪 🗜 🐕‍🦺, 👆 💪 ⚙️ 🚚 [`GzipMiddleware`](./middleware.md#gzipmiddleware){.internal-link target=_blank}.
+    👉 🧸 🖼 🎦 ❔ ⚫️ 👷, 🚥 👆 💪 🗜 🐕‍🦺, 👆 💪 ⚙️ 🚚 [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank}.
 
 🥇, 👥 ✍ `GzipRequest` 🎓, ❔ 🔜 📁 `Request.body()` 👩‍🔬 🗜 💪 🔍 ☑ 🎚.
 
@@ -76,7 +76,7 @@
 ## 🔐 📨 💪 ⚠ 🐕‍🦺
 
 !!! tip
-    ❎ 👉 🎏 ⚠, ⚫️ 🎲 📚 ⏩ ⚙️ `body` 🛃 🐕‍🦺 `RequestValidationError` ([🚚 ❌](../tutorial/handling-errors.md#use-the-requestvalidationerror-body){.internal-link target=_blank}).
+    ❎ 👉 🎏 ⚠, ⚫️ 🎲 📚 ⏩ ⚙️ `body` 🛃 🐕‍🦺 `RequestValidationError` ([🚚 ❌](../tutorial/handling-errors.md#requestvalidationerror){.internal-link target=_blank}).
 
     ✋️ 👉 🖼 ☑ &amp; ⚫️ 🎦 ❔ 🔗 ⏮️ 🔗 🦲.
 
index 62619fc2c3606609de3a63148ca1757b3bebe3f8..8d633d7f623e267d6e91c9b0236faff4a514ec1e 100644 (file)
@@ -86,7 +86,7 @@ connect_args={"check_same_thread": False}
 
 !!! info "📡 ℹ"
 
-    ⚫️❔ 🎏 📡 ℹ [🗄 (🔗) 💽](../tutorial/sql-databases.md#note){.internal-link target=_blank} ✔.
+    ⚫️❔ 🎏 📡 ℹ [🗄 (🔗) 💽](../tutorial/sql-databases.md#_7){.internal-link target=_blank} ✔.
 
 ### ⚒ 🏒 🔁-🔗 `PeeweeConnectionState`
 
index a0ccfafb81b6b8c423888e2dbdd682674500303a..cf4fa0defe631e43657793f108b1d2580b7b66ce 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -31,7 +40,7 @@ FastAPI 🏛, ⏩ (↕-🎭), 🕸 🛠️ 🏗 🛠️ ⏮️ 🐍 3️⃣.8️
 
 🔑 ⚒:
 
-* **⏩**: 📶 ↕ 🎭, 🔛 🇷🇪 ⏮️ **✳** &amp; **🚶** (👏 💃 &amp; Pydantic). [1️⃣ ⏩ 🐍 🛠️ 💪](#performance).
+* **⏩**: 📶 ↕ 🎭, 🔛 🇷🇪 ⏮️ **✳** &amp; **🚶** (👏 💃 &amp; Pydantic). [1️⃣ ⏩ 🐍 🛠️ 💪](#_15).
 * **⏩ 📟**: 📈 🚅 🛠️ ⚒ 🔃 2️⃣0️⃣0️⃣ 💯 3️⃣0️⃣0️⃣ 💯. *
 * **👩‍❤‍👨 🐛**: 📉 🔃 4️⃣0️⃣ 💯 🗿 (👩‍💻) 📉 ❌. *
 * **🏋️**: 👑 👨‍🎨 🐕‍🦺. <abbr title="also known as auto-complete, autocompletion, IntelliSense">🛠️</abbr> 🌐. 🌘 🕰 🛠️.
index b8f61a113fe02b946ba34d213d2e3054fa4e2eb1..b3026917a3a3d2cbbe2c9715b72406469cd105c9 100644 (file)
@@ -168,7 +168,7 @@ John Doe
 
     ⚪️➡️ `typing`, 🗄 `List` (⏮️ 🔠 `L`):
 
-    ``` Python hl_lines="1"
+    ```Python hl_lines="1"
     {!> ../../../docs_src/python_types/tutorial006.py!}
     ```
 
index c30bba106afa4db897ee041760d0311cbada0235..fc9076aa8d1e2947d06308a54c8757e447c2c92a 100644 (file)
 !!! tip
     👥 ⚙️ 💭 🎚 📉 👉 🖼.
 
-    ✋️ 🎰 💼 👆 🔜 🤚 👍 🏁 ⚙️ 🛠️ [💂‍♂ 🚙](./security/index.md){.internal-link target=_blank}.
+    ✋️ 🎰 💼 👆 🔜 🤚 👍 🏁 ⚙️ 🛠️ [💂‍♂ 🚙](security/index.md){.internal-link target=_blank}.
 
 ## ➕1️⃣ 🕹 ⏮️ `APIRouter`
 
index 98058ab52666b9a9050985595f92b6a0b084daa5..89bb615f601b1c89e39555432e36fefa02785950 100644 (file)
@@ -48,7 +48,7 @@
 
 👉 ⛓ 👈 👆 💪 📨 🕴 💽 👈 👆 💚 ℹ, 🍂 🎂 🐣.
 
-!!! Note
+!!! note
     `PATCH` 🌘 🛎 ⚙️ &amp; 💭 🌘 `PUT`.
 
      &amp; 📚 🏉 ⚙️ 🕴 `PUT`, 🍕 ℹ.
index db850162a21d47bd6abfc0572be41ffaa21fdc1e..12f5a63153c20f831920800f67064dae07d0b62c 100644 (file)
 
 ## 🍵 Pydantic
 
-🚥 👆 🚫 💚 ⚙️ Pydantic 🏷, 👆 💪 ⚙️ **💪** 🔢. 👀 🩺 [💪 - 💗 🔢: ⭐ 💲 💪](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank}.
+🚥 👆 🚫 💚 ⚙️ Pydantic 🏷, 👆 💪 ⚙️ **💪** 🔢. 👀 🩺 [💪 - 💗 🔢: ⭐ 💲 💪](body-multiple-params.md#_2){.internal-link target=_blank}.
index 9617667f43b3dd0c5e94204e36eb585ee647a9f5..3ed5aeba5aaa481cc1dae131586edbb46d2a504c 100644 (file)
@@ -99,7 +99,7 @@ FastAPI 🐕‍🦺 🔗 👈 <abbr title='sometimes also called "exit", "cleanu
 
 ⚫️ 5️⃣📆 😋 🤚 `HTTPException` ⚖️ 🎏 🚪 📟, ⏮️ `yield`. ✋️ **⚫️ 🏆 🚫 👷**.
 
-🚪 📟 🔗 ⏮️ `yield` 🛠️ *⏮️* 📨 📨, [⚠ 🐕‍🦺](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank} 🔜 ✔️ ⏪ 🏃. 📤 🕳 😽 ⚠ 🚮 👆 🔗 🚪 📟 (⏮️ `yield`).
+🚪 📟 🔗 ⏮️ `yield` 🛠️ *⏮️* 📨 📨, [⚠ 🐕‍🦺](../handling-errors.md#_4){.internal-link target=_blank} 🔜 ✔️ ⏪ 🏃. 📤 🕳 😽 ⚠ 🚮 👆 🔗 🚪 📟 (⏮️ `yield`).
 
 , 🚥 👆 🤚 `HTTPException` ⏮️ `yield`, 🔢 (⚖️ 🙆 🛃) ⚠ 🐕‍🦺 👈 ✊ `HTTPException`Ⓜ &amp; 📨 🇺🇸🔍 4️⃣0️⃣0️⃣ 📨 🏆 🚫 📤 ✊ 👈 ⚠ 🚫🔜.
 
@@ -111,7 +111,7 @@ FastAPI 🐕‍🦺 🔗 👈 <abbr title='sometimes also called "exit", "cleanu
 
 🚥 👆 ✔️ 📟 👈 👆 💭 💪 🤚 ⚠, 🏆 😐/"🙃" 👜 &amp; 🚮 `try` 🍫 👈 📄 📟.
 
-🚥 👆 ✔️ 🛃 ⚠ 👈 👆 🔜 💖 🍵 *⏭* 🛬 📨 &amp; 🎲 ❎ 📨, 🎲 🙋‍♀ `HTTPException`, ✍ [🛃 ⚠ 🐕‍🦺](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}.
+🚥 👆 ✔️ 🛃 ⚠ 👈 👆 🔜 💖 🍵 *⏭* 🛬 📨 &amp; 🎲 ❎ 📨, 🎲 🙋‍♀ `HTTPException`, ✍ [🛃 ⚠ 🐕‍🦺](../handling-errors.md#_4){.internal-link target=_blank}.
 
 !!! tip
     👆 💪 🤚 ⚠ 🔌 `HTTPException` *⏭* `yield`. ✋️ 🚫 ⏮️.
@@ -164,7 +164,7 @@ participant tasks as Background tasks
     ⏮️ 1️⃣ 📚 📨 📨, 🙅‍♂ 🎏 📨 💪 📨.
 
 !!! tip
-    👉 📊 🎦 `HTTPException`, ✋️ 👆 💪 🤚 🙆 🎏 ⚠ ❔ 👆 ✍ [🛃 ⚠ 🐕‍🦺](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}.
+    👉 📊 🎦 `HTTPException`, ✋️ 👆 💪 🤚 🙆 🎏 ⚠ ❔ 👆 ✍ [🛃 ⚠ 🐕‍🦺](../handling-errors.md#_4){.internal-link target=_blank}.
 
     🚥 👆 🤚 🙆 ⚠, ⚫️ 🔜 🚶‍♀️ 🔗 ⏮️ 🌾, 🔌 `HTTPException`, &amp; ⤴️ **🔄** ⚠ 🐕‍🦺. 🚥 📤 🙅‍♂ ⚠ 🐕‍🦺 👈 ⚠, ⚫️ 🔜 ⤴️ 🍵 🔢 🔗 `ServerErrorMiddleware`, 🛬 5️⃣0️⃣0️⃣ 🇺🇸🔍 👔 📟, ➡️ 👩‍💻 💭 👈 📤 ❌ 💽.
 
index 7cb54a963b8b41ba6ed80f8377892b31e506dd44..82f974d9f1dfa874793345b7cb196c2988bbb88a 100644 (file)
@@ -11,7 +11,7 @@
 !!! danger
     🙅 🏪 👩‍💻 🔢 🔐. 🕧 🏪 "🔐 #️⃣" 👈 👆 💪 ⤴️ ✔.
 
-    🚥 👆 🚫 💭, 👆 🔜 💡 ⚫️❔ "🔐#️⃣" [💂‍♂ 📃](security/simple-oauth2.md#password-hashing){.internal-link target=_blank}.
+    🚥 👆 🚫 💭, 👆 🔜 💡 ⚫️❔ "🔐#️⃣" [💂‍♂ 📃](security/simple-oauth2.md#_4){.internal-link target=_blank}.
 
 ## 💗 🏷
 
index 252e769f41a35f2b47e720de67885ede6d48b739..b8d3f6b566f1257d17164d5164bb509d9d5e4bfa 100644 (file)
@@ -310,7 +310,7 @@ https://example.com/items/foo
 ```
 
 !!! note
-    🚥 👆 🚫 💭 🔺, ✅ [🔁: *"🏃 ❓"*](../async.md#in-a-hurry){.internal-link target=_blank}.
+    🚥 👆 🚫 💭 🔺, ✅ [🔁: *"🏃 ❓"*](../async.md#_2){.internal-link target=_blank}.
 
 ### 🔁 5️⃣: 📨 🎚
 
index 75508af4d101d0bd5215d3e0a5e9aa50d6a51169..97d345fa226a89cca35c4aa0154fcc42272ea432 100644 (file)
@@ -66,7 +66,7 @@
 ```
 
 !!! info
-    ✍ 🌅 🔃 🔖 [➡ 🛠️ 📳](path-operation-configuration.md#tags){.internal-link target=_blank}.
+    ✍ 🌅 🔃 🔖 [➡ 🛠️ 📳](path-operation-configuration.md#_3){.internal-link target=_blank}.
 
 ### ✅ 🩺
 
index ccb235c1514fc85f075b0597c7a9c5d0ced02885..746b0af9eb7a3574663c64a156b91421473d810c 100644 (file)
@@ -222,4 +222,4 @@ http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
 * `limit`, 📦 `int`.
 
 !!! tip
-    👆 💪 ⚙️ `Enum`Ⓜ 🎏 🌌 ⏮️ [➡ 🔢](path-params.md#predefined-values){.internal-link target=_blank}.
+    👆 💪 ⚙️ `Enum`Ⓜ 🎏 🌌 ⏮️ [➡ 🔢](path-params.md#_7){.internal-link target=_blank}.
index 765d9403947f955cbcbc267a65b32b6fc446b9d8..b9e3deb3c9f12ae27532626e798cb1f20c8c6aee 100644 (file)
@@ -163,7 +163,7 @@ UserInDB(
 ```
 
 !!! info
-    🌅 🏁 🔑 `**👩‍💻_ #️⃣ ` ✅ 🔙 [🧾 **➕ 🏷**](../extra-models.md#about-user_indict){.internal-link target=_blank}.
+    🌅 🏁 🔑 `**👩‍💻_ #️⃣ ` ✅ 🔙 [🧾 **➕ 🏷**](../extra-models.md#user_indict){.internal-link target=_blank}.
 
 ## 📨 🤝
 
index ef08fcf4b5cd01e918d8363d786370d0ca5c50bc..4c87409845f22e8abb7d5224f7a68af0f342d8ad 100644 (file)
@@ -534,7 +534,7 @@ current_user.items
 
     👉 🌌 👥 ⚒ 💭 💽 🎉 🕧 📪 ⏮️ 📨. 🚥 📤 ⚠ ⏪ 🏭 📨.
 
-    ✋️ 👆 💪 🚫 🤚 ➕1️⃣ ⚠ ⚪️➡️ 🚪 📟 (⏮️ `yield`). 👀 🌖 [🔗 ⏮️ `yield` &amp; `HTTPException`](./dependencies/dependencies-with-yield.md#dependencies-with-yield-and-httpexception){.internal-link target=_blank}
+    ✋️ 👆 💪 🚫 🤚 ➕1️⃣ ⚠ ⚪️➡️ 🚪 📟 (⏮️ `yield`). 👀 🌖 [🔗 ⏮️ `yield` &amp; `HTTPException`](dependencies/dependencies-with-yield.md#yield-httpexception){.internal-link target=_blank}
 
 &amp; ⤴️, 🕐❔ ⚙️ 🔗 *➡ 🛠️ 🔢*, 👥 📣 ⚫️ ⏮️ 🆎 `Session` 👥 🗄 🔗 ⚪️➡️ 🇸🇲.
 
@@ -620,7 +620,7 @@ def read_user(user_id: int, db: Session = Depends(get_db)):
     🚥 👆 💪 🔗 👆 🔗 💽 🔁, 👀 [🔁 🗄 (🔗) 💽](../advanced/async-sql-databases.md){.internal-link target=_blank}.
 
 !!! note "📶 📡 ℹ"
-    🚥 👆 😟 &amp; ✔️ ⏬ 📡 💡, 👆 💪 ✅ 📶 📡 ℹ ❔ 👉 `async def` 🆚 `def` 🍵 [🔁](../async.md#very-technical-details){.internal-link target=_blank} 🩺.
+    🚥 👆 😟 &amp; ✔️ ⏬ 📡 💡, 👆 💪 ✅ 📶 📡 ℹ ❔ 👉 `async def` 🆚 `def` 🍵 [🔁](../async.md#i_2){.internal-link target=_blank} 🩺.
 
 ## 🛠️
 
index 999d67cd3536f08b63d8397208d138c1397c9425..3ae51e298ef6cff4f6ddc494688c4af621d11803 100644 (file)
@@ -50,7 +50,7 @@
 
 ### **FastAPI** 📱 📁
 
-➡️ 💬 👆 ✔️ 📁 📊 🔬 [🦏 🈸](./bigger-applications.md){.internal-link target=_blank}:
+➡️ 💬 👆 ✔️ 📁 📊 🔬 [🦏 🈸](bigger-applications.md){.internal-link target=_blank}:
 
 ```
 .
index 4da2ddefc4d51186b7cf6c52627e06fe03f04f9b..b25c11b17720c270608916aa6ce038e659550c79 100644 (file)
@@ -345,6 +345,6 @@ and then it won't include it in the OpenAPI schema.
 
 ## Mounting a sub-application
 
-If you need to mount a sub-application (as described in [Sub Applications - Mounts](./sub-applications.md){.internal-link target=_blank}) while also using a proxy with `root_path`, you can do it normally, as you would expect.
+If you need to mount a sub-application (as described in [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}) while also using a proxy with `root_path`, you can do it normally, as you would expect.
 
 FastAPI will internally use the `root_path` smartly, so it will just work. ✨
index 827776f5e52b67afd2e468f64e2c5518d1a4a07f..45c7c7bd50b9aaf60989bc0f381b462f443f92a3 100644 (file)
@@ -23,7 +23,7 @@ Import the `Response` class (sub-class) you want to use and declare it in the *p
 
 For large responses, returning a `Response` directly is much faster than returning a dictionary.
 
-This is because by default, FastAPI will inspect every item inside and make sure it is serializable with JSON, using the same [JSON Compatible Encoder](../tutorial/encoder.md){.internal-link target=_blank} explained in the tutorial. This is what allows you to return **arbitrary objects**, for example database models.
+This is because by default, FastAPI will inspect every item inside and make sure it is serializable as JSON, using the same [JSON Compatible Encoder](../tutorial/encoder.md){.internal-link target=_blank} explained in the tutorial. This is what allows you to return **arbitrary objects**, for example database models.
 
 But if you are certain that the content that you are returning is **serializable with JSON**, you can pass it directly to the response class and avoid the extra overhead that FastAPI would have by passing your return content through the `jsonable_encoder` before passing it to the response class.
 
@@ -73,7 +73,7 @@ The same example from above, returning an `HTMLResponse`, could look like:
     A `Response` returned directly by your *path operation function* won't be documented in OpenAPI (for example, the `Content-Type` won't be documented) and won't be visible in the automatic interactive docs.
 
 !!! info
-    Of course, the actual `Content-Type` header, status code, etc, will come from the `Response` object your returned.
+    Of course, the actual `Content-Type` header, status code, etc, will come from the `Response` object you returned.
 
 ### Document in OpenAPI and override `Response`
 
index 481bf5e6910daaa1dc6a4dbaa87b8d163bf31158..286e8f93f673b2b3216d1381336d315bb2616b85 100644 (file)
@@ -77,7 +77,7 @@ In that case, you can simply swap the standard `dataclasses` with `pydantic.data
 
     As always, in FastAPI you can combine `def` and `async def` as needed.
 
-    If you need a refresher about when to use which, check out the section _"In a hurry?"_ in the docs about <a href="https://fastapi.tiangolo.com/async/#in-a-hurry" target="_blank" class="internal-link">`async` and `await`</a>.
+    If you need a refresher about when to use which, check out the section _"In a hurry?"_ in the docs about [`async` and `await`](../async.md#in-a-hurry){.internal-link target=_blank}.
 
 9. This *path operation function* is not returning dataclasses (although it could), but a list of dictionaries with internal data.
 
index ca9d86ae41e9919c440fdeac2e4ec20d02ca7bb3..703fcb7ae77b463cd29d3b1d7beae37746e20ac3 100644 (file)
@@ -159,4 +159,4 @@ Underneath, in the ASGI technical specification, this is part of the <a href="ht
 
 ## Sub Applications
 
-🚨 Keep in mind that these lifespan events (startup and shutdown) will only be executed for the main application, not for [Sub Applications - Mounts](./sub-applications.md){.internal-link target=_blank}.
+🚨 Keep in mind that these lifespan events (startup and shutdown) will only be executed for the main application, not for [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}.
index c333ddf853f60c6d1e81c9dddf8edee39351f5fc..fd9a7361830183a7c94833e5fa1a187a84ecaa51 100644 (file)
@@ -237,7 +237,7 @@ We could download the OpenAPI JSON to a file `openapi.json` and then we could **
 
 === "Node.js"
 
-    ```Python
+    ```Javascript
     {!> ../../../docs_src/generate_clients/tutorial004.js!}
     ```
 
@@ -271,7 +271,7 @@ After generating the new client, you would now have **clean method names**, with
 
 ## Benefits
 
-When using the automatically generated clients you would **autocompletion** for:
+When using the automatically generated clients you would get **autocompletion** for:
 
 * Methods.
 * Request payloads in the body, query parameters, etc.
index fb7a6d917d12b08cb60a5a7e1e9d4d6602e3820d..2785ee14075f15083c3126e6626c34b7dc36e875 100644 (file)
@@ -131,7 +131,7 @@ with a JSON body of:
 }
 ```
 
-Then *your API* will process the invoice, and at some point later, send a callback request to the `callback_url` (the *external API*):
+then *your API* will process the invoice, and at some point later, send a callback request to the `callback_url` (the *external API*):
 
 ```
 https://www.external.org/events/invoices/2expen51ve
@@ -174,6 +174,6 @@ Now use the parameter `callbacks` in *your API's path operation decorator* to pa
 
 Now you can start your app with Uvicorn and go to <a href="http://127.0.0.1:8000/docs" class="external-link" target="_blank">http://127.0.0.1:8000/docs</a>.
 
-You will see your docs including a "Callback" section for your *path operation* that shows how the *external API* should look like:
+You will see your docs including a "Callbacks" section for your *path operation* that shows how the *external API* should look like:
 
 <img src="/img/tutorial/openapi-callbacks/image01.png">
index 8b79bfe22a2131071bf5b160a94d8b35fcb5160d..c5544a78bc71ed65a2213da3d7ce36ef7b7e8a59 100644 (file)
@@ -59,7 +59,7 @@ That defines the metadata about the main response of a *path operation*.
 
 You can also declare additional responses with their models, status codes, etc.
 
-There's a whole chapter here in the documentation about it, you can read it at [Additional Responses in OpenAPI](./additional-responses.md){.internal-link target=_blank}.
+There's a whole chapter here in the documentation about it, you can read it at [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}.
 
 ## OpenAPI Extra
 
@@ -77,7 +77,7 @@ This *path operation*-specific OpenAPI schema is normally generated automaticall
 !!! tip
     This is a low level extension point.
 
-    If you only need to declare additional responses, a more convenient way to do it is with [Additional Responses in OpenAPI](./additional-responses.md){.internal-link target=_blank}.
+    If you only need to declare additional responses, a more convenient way to do it is with [Additional Responses in OpenAPI](additional-responses.md){.internal-link target=_blank}.
 
 You can extend the OpenAPI schema for a *path operation* using the parameter `openapi_extra`.
 
index f6db8d2b1527ee061b9cb61fd02813f7325141ba..8f72bf63a82b3a3c792785aeb6094109147f6678 100644 (file)
@@ -232,7 +232,7 @@ And then use it in a file `main.py`:
 ```
 
 !!! tip
-    You would also need a file `__init__.py` as you saw on [Bigger Applications - Multiple Files](../tutorial/bigger-applications.md){.internal-link target=_blank}.
+    You would also need a file `__init__.py` as you saw in [Bigger Applications - Multiple Files](../tutorial/bigger-applications.md){.internal-link target=_blank}.
 
 ## Settings in a dependency
 
index a089632acf3c250cd4efdc6db1d8ee49143f5f78..8c52e091f0792fac74fdff3b5659cf21290be260 100644 (file)
@@ -70,4 +70,4 @@ That way, the sub-application will know to use that path prefix for the docs UI.
 
 And the sub-application could also have its own mounted sub-applications and everything would work correctly, because FastAPI handles all these `root_path`s automatically.
 
-You will learn more about the `root_path` and how to use it explicitly in the section about [Behind a Proxy](./behind-a-proxy.md){.internal-link target=_blank}.
+You will learn more about the `root_path` and how to use it explicitly in the section about [Behind a Proxy](behind-a-proxy.md){.internal-link target=_blank}.
index cfe3c78c11ca4be32e7ce8c45e8d4b8a9b31868b..852e2501990909d139ccfd5a9dee70a499b7caa7 100644 (file)
@@ -1,6 +1,6 @@
 # Including WSGI - Flask, Django, others
 
-You can mount WSGI applications as you saw with [Sub Applications - Mounts](./sub-applications.md){.internal-link target=_blank}, [Behind a Proxy](./behind-a-proxy.md){.internal-link target=_blank}.
+You can mount WSGI applications as you saw with [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}, [Behind a Proxy](behind-a-proxy.md){.internal-link target=_blank}.
 
 For that, you can use the `WSGIMiddleware` and use it to wrap your WSGI application, for example, Flask, Django, etc.
 
index d351c4e0b7d323df0dff3b6b3eb4d39d3654af50..9a101a8a1b9c0db1cd0ff1d900d9b071a9c9a945 100644 (file)
@@ -1,6 +1,6 @@
 # Alternatives, Inspiration and Comparisons
 
-What inspired **FastAPI**, how it compares to other alternatives and what it learned from them.
+What inspired **FastAPI**, how it compares to alternatives and what it learned from them.
 
 ## Intro
 
@@ -117,7 +117,7 @@ That's why when talking about version 2.0 it's common to say "Swagger", and for
     * <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank">Swagger UI</a>
     * <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank">ReDoc</a>
 
-    These two were chosen for being fairly popular and stable, but doing a quick search, you could find dozens of additional alternative user interfaces for OpenAPI (that you can use with **FastAPI**).
+    These two were chosen for being fairly popular and stable, but doing a quick search, you could find dozens of alternative user interfaces for OpenAPI (that you can use with **FastAPI**).
 
 ### Flask REST frameworks
 
@@ -291,7 +291,7 @@ As it is based on the previous standard for synchronous Python web frameworks (W
 !!! info
     Hug was created by Timothy Crosley, the same creator of <a href="https://github.com/timothycrosley/isort" class="external-link" target="_blank">`isort`</a>, a great tool to automatically sort imports in Python files.
 
-!!! check "Ideas inspired in **FastAPI**"
+!!! check "Ideas inspiring **FastAPI**"
     Hug inspired parts of APIStar, and was one of the tools I found most promising, alongside APIStar.
 
     Hug helped inspiring **FastAPI** to use Python type hints to declare parameters, and to generate a schema defining the API automatically.
index ff322635ad5a6d3c6d1b3e277943e1c86e04deaa..a0c00933add030a186677d56fc5ffbdc51ec0ea4 100644 (file)
@@ -397,7 +397,7 @@ All that is what powers FastAPI (through Starlette) and what makes it have such
 
     These are very technical details of how **FastAPI** works underneath.
 
-    If you have quite some technical knowledge (co-routines, threads, blocking, etc.) and are curious about how FastAPI handles `async def` vs normal `def`, go ahead.
+    If you have quite some technical knowledge (coroutines, threads, blocking, etc.) and are curious about how FastAPI handles `async def` vs normal `def`, go ahead.
 
 ### Path operation functions
 
@@ -409,11 +409,11 @@ Still, in both situations, chances are that **FastAPI** will [still be faster](i
 
 ### Dependencies
 
-The same applies for [dependencies](./tutorial/dependencies/index.md){.internal-link target=_blank}. If a dependency is a standard `def` function instead of `async def`, it is run in the external threadpool.
+The same applies for [dependencies](tutorial/dependencies/index.md){.internal-link target=_blank}. If a dependency is a standard `def` function instead of `async def`, it is run in the external threadpool.
 
 ### Sub-dependencies
 
-You can have multiple dependencies and [sub-dependencies](./tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} requiring each other (as parameters of the function definitions), some of them might be created with `async def` and some with normal `def`. It would still work, and the ones created with normal `def` would be called on an external thread (from the threadpool) instead of being "awaited".
+You can have multiple dependencies and [sub-dependencies](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} requiring each other (as parameters of the function definitions), some of them might be created with `async def` and some with normal `def`. It would still work, and the ones created with normal `def` would be called on an external thread (from the threadpool) instead of being "awaited".
 
 ### Other utility functions
 
index d746b6d7c4e24dd0d8c64dde4f3f32782793ffb3..62266c449b0bd412911e8697e4a598102260a72c 100644 (file)
@@ -1,6 +1,6 @@
 # Benchmarks
 
-Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*)
+Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI).
 
 But when checking benchmarks and comparisons you should keep the following in mind.
 
index cc01fb24e158415feaaf441299b78b9d4f39fc27..b771ae6634e257fcd739db434fed0c2cd8c5dc1b 100644 (file)
@@ -25,7 +25,7 @@ But for now, let's check these important **conceptual ideas**. These concepts al
 
 ## Security - HTTPS
 
-In the [previous chapter about HTTPS](./https.md){.internal-link target=_blank} we learned about how HTTPS provides encryption for your API.
+In the [previous chapter about HTTPS](https.md){.internal-link target=_blank} we learned about how HTTPS provides encryption for your API.
 
 We also saw that HTTPS is normally provided by a component **external** to your application server, a **TLS Termination Proxy**.
 
@@ -187,7 +187,7 @@ When you run **multiple processes** of the same API program, they are commonly c
 
 ### Worker Processes and Ports
 
-Remember from the docs [About HTTPS](./https.md){.internal-link target=_blank} that only one process can be listening on one combination of port and IP address in a server?
+Remember from the docs [About HTTPS](https.md){.internal-link target=_blank} that only one process can be listening on one combination of port and IP address in a server?
 
 This is still true.
 
@@ -230,18 +230,18 @@ The main constraint to consider is that there has to be a **single** component h
 Here are some possible combinations and strategies:
 
 * **Gunicorn** managing **Uvicorn workers**
-    * Gunicorn would be the **process manager** listening on the **IP** and **port**, the replication would be by having **multiple Uvicorn worker processes**
+    * Gunicorn would be the **process manager** listening on the **IP** and **port**, the replication would be by having **multiple Uvicorn worker processes**.
 * **Uvicorn** managing **Uvicorn workers**
-    * One Uvicorn **process manager** would listen on the **IP** and **port**, and it would start **multiple Uvicorn worker processes**
+    * One Uvicorn **process manager** would listen on the **IP** and **port**, and it would start **multiple Uvicorn worker processes**.
 * **Kubernetes** and other distributed **container systems**
-    * Something in the **Kubernetes** layer would listen on the **IP** and **port**. The replication would be by having **multiple containers**, each with **one Uvicorn process** running
+    * Something in the **Kubernetes** layer would listen on the **IP** and **port**. The replication would be by having **multiple containers**, each with **one Uvicorn process** running.
 * **Cloud services** that handle this for you
     * The cloud service will probably **handle replication for you**. It would possibly let you define **a process to run**, or a **container image** to use, in any case, it would most probably be **a single Uvicorn process**, and the cloud service would be in charge of replicating it.
 
 !!! tip
     Don't worry if some of these items about **containers**, Docker, or Kubernetes don't make a lot of sense yet.
 
-    I'll tell you more about container images, Docker, Kubernetes, etc. in a future chapter: [FastAPI in Containers - Docker](./docker.md){.internal-link target=_blank}.
+    I'll tell you more about container images, Docker, Kubernetes, etc. in a future chapter: [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank}.
 
 ## Previous Steps Before Starting
 
@@ -273,7 +273,7 @@ Here are some possible ideas:
     * You would still need a way to start/restart *that* bash script, detect errors, etc.
 
 !!! tip
-    I'll give you more concrete examples for doing this with containers in a future chapter: [FastAPI in Containers - Docker](./docker.md){.internal-link target=_blank}.
+    I'll give you more concrete examples for doing this with containers in a future chapter: [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank}.
 
 ## Resource Utilization
 
index 8a542622e408a6107a8fd395a704b125ea3b709c..467ba72deba8cc7687fec0487e9b95f344b3353c 100644 (file)
@@ -108,7 +108,7 @@ It would depend mainly on the tool you use to **install** those requirements.
 
 The most common way to do it is to have a file `requirements.txt` with the package names and their versions, one per line.
 
-You would of course use the same ideas you read in [About FastAPI versions](./versions.md){.internal-link target=_blank} to set the ranges of versions.
+You would of course use the same ideas you read in [About FastAPI versions](versions.md){.internal-link target=_blank} to set the ranges of versions.
 
 For example, your `requirements.txt` could look like:
 
@@ -373,7 +373,7 @@ Then adjust the Uvicorn command to use the new module `main` instead of `app.mai
 
 ## Deployment Concepts
 
-Let's talk again about some of the same [Deployment Concepts](./concepts.md){.internal-link target=_blank} in terms of containers.
+Let's talk again about some of the same [Deployment Concepts](concepts.md){.internal-link target=_blank} in terms of containers.
 
 Containers are mainly a tool to simplify the process of **building and deploying** an application, but they don't enforce a particular approach to handle these **deployment concepts**, and there are several possible strategies.
 
@@ -514,7 +514,7 @@ If you have a simple setup, with a **single container** that then starts multipl
 
 ## Official Docker Image with Gunicorn - Uvicorn
 
-There is an official Docker image that includes Gunicorn running with Uvicorn workers, as detailed in a previous chapter: [Server Workers - Gunicorn with Uvicorn](./server-workers.md){.internal-link target=_blank}.
+There is an official Docker image that includes Gunicorn running with Uvicorn workers, as detailed in a previous chapter: [Server Workers - Gunicorn with Uvicorn](server-workers.md){.internal-link target=_blank}.
 
 This image would be useful mainly in the situations described above in: [Containers with Multiple Processes and Special Cases](#containers-with-multiple-processes-and-special-cases).
 
index 2df9f3d432536dccfdf690f3b29738c267e38785..5fe2309a949122ed8700b169dd872a664c081434 100644 (file)
@@ -13,12 +13,12 @@ Up to this point, with all the tutorials in the docs, you have probably been run
 
 When deploying applications you will probably want to have some **replication of processes** to take advantage of **multiple cores** and to be able to handle more requests.
 
-As you saw in the previous chapter about [Deployment Concepts](./concepts.md){.internal-link target=_blank}, there are multiple strategies you can use.
+As you saw in the previous chapter about [Deployment Concepts](concepts.md){.internal-link target=_blank}, there are multiple strategies you can use.
 
 Here I'll show you how to use <a href="https://gunicorn.org/" class="external-link" target="_blank">**Gunicorn**</a> with **Uvicorn worker processes**.
 
 !!! info
-    If you are using containers, for example with Docker or Kubernetes, I'll tell you more about that in the next chapter: [FastAPI in Containers - Docker](./docker.md){.internal-link target=_blank}.
+    If you are using containers, for example with Docker or Kubernetes, I'll tell you more about that in the next chapter: [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank}.
 
     In particular, when running on **Kubernetes** you will probably **not** want to use Gunicorn and instead run **a single Uvicorn process per container**, but I'll tell you about it later in that chapter.
 
@@ -165,7 +165,7 @@ From the list of deployment concepts from above, using workers would mainly help
 
 ## Containers and Docker
 
-In the next chapter about [FastAPI in Containers - Docker](./docker.md){.internal-link target=_blank} I'll tell some strategies you could use to handle the other **deployment concepts**.
+In the next chapter about [FastAPI in Containers - Docker](docker.md){.internal-link target=_blank} I'll tell some strategies you could use to handle the other **deployment concepts**.
 
 I'll also show you the **official Docker image** that includes **Gunicorn with Uvicorn workers** and some default configurations that can be useful for simple cases.
 
index 1d76aca5e597cc250bf1e1d68041dd8d4e0ed2f1..12144773973c4d907f62d0fa856d160f0eb3223c 100644 (file)
@@ -51,7 +51,7 @@ You can:
     * Tell me how you use FastAPI (I love to hear that).
     * Hear when I make announcements or release new tools.
     * You can also <a href="https://twitter.com/fastapi" class="external-link" target="_blank">follow @fastapi on Twitter</a> (a separate account).
-* <a href="https://www.linkedin.com/in/tiangolo/" class="external-link" target="_blank">Follow me on **Linkedin**</a>.
+* <a href="https://www.linkedin.com/in/tiangolo/" class="external-link" target="_blank">Follow me on **LinkedIn**</a>.
     * Hear when I make announcements or release new tools (although I use Twitter more often 🤷‍♂).
 * Read what I write (or follow me) on <a href="https://dev.to/tiangolo" class="external-link" target="_blank">**Dev.to**</a> or <a href="https://medium.com/@tiangolo" class="external-link" target="_blank">**Medium**</a>.
     * Read other ideas, articles, and read about tools I have created.
@@ -78,7 +78,7 @@ You can try and help others with their questions in:
 
 In many cases you might already know the answer for those questions. 🤓
 
-If you are helping a lot of people with their questions, you will become an official [FastAPI Expert](fastapi-people.md#experts){.internal-link target=_blank}. 🎉
+If you are helping a lot of people with their questions, you will become an official [FastAPI Expert](fastapi-people.md#fastapi-experts){.internal-link target=_blank}. 🎉
 
 Just remember, the most important point is: try to be kind. People come with their frustrations and in many cases don't ask in the best way, but try as best as you can to be kind. 🤗
 
@@ -227,7 +227,7 @@ If you can help me with that, **you are helping me maintain FastAPI** and making
 Join the 👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">Discord chat server</a> 👥 and hang out with others in the FastAPI community.
 
 !!! tip
-    For questions, ask them in <a href="https://github.com/tiangolo/fastapi/discussions/new?category=questions" class="external-link" target="_blank">GitHub Discussions</a>, there's a much better chance you will receive help by the [FastAPI Experts](fastapi-people.md#experts){.internal-link target=_blank}.
+    For questions, ask them in <a href="https://github.com/tiangolo/fastapi/discussions/new?category=questions" class="external-link" target="_blank">GitHub Discussions</a>, there's a much better chance you will receive help by the [FastAPI Experts](fastapi-people.md#fastapi-experts){.internal-link target=_blank}.
 
     Use the chat only for other general conversations.
 
@@ -237,7 +237,7 @@ Keep in mind that as chats allow more "free conversation", it's easy to ask ques
 
 In GitHub, the template will guide you to write the right question so that you can more easily get a good answer, or even solve the problem yourself even before asking. And in GitHub I can make sure I always answer everything, even if it takes some time. I can't personally do that with the chat systems. 😅
 
-Conversations in the chat systems are also not as easily searchable as in GitHub, so questions and answers might get lost in the conversation. And only the ones in GitHub count to become a [FastAPI Expert](fastapi-people.md#experts){.internal-link target=_blank}, so you will most probably receive more attention in GitHub.
+Conversations in the chat systems are also not as easily searchable as in GitHub, so questions and answers might get lost in the conversation. And only the ones in GitHub count to become a [FastAPI Expert](fastapi-people.md#fastapi-experts){.internal-link target=_blank}, so you will most probably receive more attention in GitHub.
 
 On the other side, there are thousands of users in the chat systems, so there's a high chance you'll find someone to talk to there, almost all the time. 😄
 
index c7b340d679179ac7be88e9cad45c0f473278b52a..4d53f53a7f91982022cc84d94dd9ee782530d1fc 100644 (file)
@@ -100,7 +100,7 @@ Create the *path operation function* to read notes:
 {!../../../docs_src/async_sql_databases/tutorial001.py!}
 ```
 
-!!! Note
+!!! note
     Notice that as we communicate with the database using `await`, the *path operation function* is declared with `async`.
 
 ### Notice the `response_model=List[Note]`
@@ -122,7 +122,7 @@ Create the *path operation function* to create notes:
 
     The examples here use `.dict()` for compatibility with Pydantic v1, but you should use `.model_dump()` instead if you can use Pydantic v2.
 
-!!! Note
+!!! note
     Notice that as we communicate with the database using `await`, the *path operation function* is declared with `async`.
 
 ### About `{**note.dict(), "id": last_record_id}`
index f36ba5ba8c2305848f116b82766d9c6b0ff618c3..108afb929bf951f6c800d4c727d257cfe521fd67 100644 (file)
@@ -45,7 +45,7 @@ FastAPI includes some default configuration parameters appropriate for most of t
 It includes these default configurations:
 
 ```Python
-{!../../../fastapi/openapi/docs.py[ln:7-13]!}
+{!../../../fastapi/openapi/docs.py[ln:7-23]!}
 ```
 
 You can override any of them by setting a different value in the argument `swagger_ui_parameters`.
index 51db744ff5a9b5f2c573f5cb427cf245a88e8f4d..3e8267aea0822d955a668cd1d69f1cd0d803550a 100644 (file)
@@ -186,7 +186,7 @@ For example, let's define a variable to be a `list` of `str`.
 
     From `typing`, import `List` (with a capital `L`):
 
-    ``` Python hl_lines="1"
+    ```Python hl_lines="1"
     {!> ../../../docs_src/python_types/tutorial006.py!}
     ```
 
index b779ad29143706ff0010e1879338c739c861198b..d77364e45e851c98d7aecc93ca9a0c3ba3121018 100644 (file)
@@ -1,7 +1,6 @@
 # `APIRouter` class
 
-Here's the reference information for the `APIRouter` class, with all its parameters,
-attributes and methods.
+Here's the reference information for the `APIRouter` class, with all its parameters, attributes and methods.
 
 You can import the `APIRouter` class directly from `fastapi`:
 
index e0c0be899f9948fd69493c512d5f2ed9720e3309..f65619590ecee23ed04025ef1a22092ae54ff7a8 100644 (file)
@@ -1,8 +1,6 @@
 # Background Tasks - `BackgroundTasks`
 
-You can declare a parameter in a *path operation function* or dependency function
-with the type `BackgroundTasks`, and then you can use it to schedule the execution
-of background tasks after the response is sent.
+You can declare a parameter in a *path operation function* or dependency function with the type `BackgroundTasks`, and then you can use it to schedule the execution of background tasks after the response is sent.
 
 You can import it directly from `fastapi`:
 
index 0999682679a7e9165f2d06313d5e09f0370c394c..2959a21daebc10675729039df0aa947343d22485 100644 (file)
@@ -2,8 +2,7 @@
 
 ## `Depends()`
 
-Dependencies are handled mainly with the special function `Depends()` that takes a
-callable.
+Dependencies are handled mainly with the special function `Depends()` that takes a callable.
 
 Here is the reference for it and its parameters.
 
@@ -17,11 +16,9 @@ from fastapi import Depends
 
 ## `Security()`
 
-For many scenarios, you can handle security (authorization, authentication, etc.) with
-dependencies, using `Depends()`.
+For many scenarios, you can handle security (authorization, authentication, etc.) with dependencies, using `Depends()`.
 
-But when you want to also declare OAuth2 scopes, you can use `Security()` instead of
-`Depends()`.
+But when you want to also declare OAuth2 scopes, you can use `Security()` instead of `Depends()`.
 
 You can import `Security()` directly from `fastapi`:
 
index 7c480834928f9ec71cb0233b1b1d8bd904700aa8..1392d2a80e3cfb1297a109f1df1027857f9e0927 100644 (file)
@@ -2,9 +2,7 @@
 
 These are the exceptions that you can raise to show errors to the client.
 
-When you raise an exception, as would happen with normal Python, the rest of the
-execution is aborted. This way you can raise these exceptions from anywhere in the
-code to abort a request and show the error to the client.
+When you raise an exception, as would happen with normal Python, the rest of the execution is aborted. This way you can raise these exceptions from anywhere in the code to abort a request and show the error to the client.
 
 You can use:
 
index 8b87664cb31ee5d626b0fb453b762de626d64fae..d5367ff347f62543cf5938a829fd2275a7d10dc5 100644 (file)
@@ -1,7 +1,6 @@
 # `FastAPI` class
 
-Here's the reference information for the `FastAPI` class, with all its parameters,
-attributes and methods.
+Here's the reference information for the `FastAPI` class, with all its parameters, attributes and methods.
 
 You can import the `FastAPI` class directly from `fastapi`:
 
index 43dfc46f943766ef1043c3b1461478285663d8b5..b7b87871a80c9f8d0e0e3c8db6684b7a30cb417e 100644 (file)
@@ -1,8 +1,6 @@
 # `HTTPConnection` class
 
-When you want to define dependencies that should be compatible with both HTTP and
-WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a
-`Request` or a `WebSocket`.
+When you want to define dependencies that should be compatible with both HTTP and WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a `Request` or a `WebSocket`.
 
 You can import it from `fastapi.requests`:
 
index 89704d3c8baac5761bc0ab77e341d4a02e55aaf3..3c666ccdaaae3f9c8ce1bd9717ee53709b3853dd 100644 (file)
@@ -2,8 +2,7 @@
 
 There are several middlewares available provided by Starlette directly.
 
-Read more about them in the
-[FastAPI docs for Middleware](https://fastapi.tiangolo.com/advanced/middleware/).
+Read more about them in the [FastAPI docs for Middleware](https://fastapi.tiangolo.com/advanced/middleware/).
 
 ::: fastapi.middleware.cors.CORSMiddleware
 
index 8f77f0161b07daf0ec53def74a75007874949561..d304c013c7a4ec7f8adcf9f797b9001736849fbc 100644 (file)
@@ -2,8 +2,7 @@
 
 Here's the reference information for the request parameters.
 
-These are the special functions that you can put in *path operation function*
-parameters or dependency functions with `Annotated` to get data from the request.
+These are the special functions that you can put in *path operation function* parameters or dependency functions with `Annotated` to get data from the request.
 
 It includes:
 
index 91ec7d37b65b61918f1efc507a58f9b2cd41f299..0326f3fc7361226db584a957122110f7ba83cdf9 100644 (file)
@@ -1,8 +1,6 @@
 # `Request` class
 
-You can declare a parameter in a *path operation function* or dependency to be of type
-`Request` and then you can access the raw request object directly, without any
-validation, etc.
+You can declare a parameter in a *path operation function* or dependency to be of type `Request` and then you can access the raw request object directly, without any validation, etc.
 
 You can import it directly from `fastapi`:
 
@@ -11,8 +9,6 @@ from fastapi import Request
 ```
 
 !!! tip
-    When you want to define dependencies that should be compatible with both HTTP and
-    WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a
-    `Request` or a `WebSocket`.
+    When you want to define dependencies that should be compatible with both HTTP and WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a `Request` or a `WebSocket`.
 
 ::: fastapi.Request
index 91625458317f10c11990501ae88d39bdba6e6135..00cf2c499cf7b4dacea029d48df7d4eefb2e4c50 100644 (file)
@@ -1,10 +1,8 @@
 # `Response` class
 
-You can declare a parameter in a *path operation function* or dependency to be of type
-`Response` and then you can set data for the response like headers or cookies.
+You can declare a parameter in a *path operation function* or dependency to be of type `Response` and then you can set data for the response like headers or cookies.
 
-You can also use it directly to create an instance of it and return it from your *path
-operations*.
+You can also use it directly to create an instance of it and return it from your *path operations*.
 
 You can import it directly from `fastapi`:
 
index 2cbbd89632fe8920021f56f006d2ef1e28f511eb..46f014fcc830f708c836f8a1b6fcf6d43a3db8ca 100644 (file)
@@ -1,10 +1,8 @@
 # Custom Response Classes - File, HTML, Redirect, Streaming, etc.
 
-There are several custom response classes you can use to create an instance and return
-them directly from your *path operations*.
+There are several custom response classes you can use to create an instance and return them directly from your *path operations*.
 
-Read more about it in the
-[FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/).
+Read more about it in the [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/).
 
 You can import them directly from `fastapi.responses`:
 
index ff86e9e30ca70342f45f2e2f134af315eae1113e..9a5c5e15fbf462309965edf200e82ad321e25252 100644 (file)
@@ -2,12 +2,9 @@
 
 When you need to declare dependencies with OAuth2 scopes you use `Security()`.
 
-But you still need to define what is the dependable, the callable that you pass as
-a parameter to `Depends()` or `Security()`.
+But you still need to define what is the dependable, the callable that you pass as a parameter to `Depends()` or `Security()`.
 
-There are multiple tools that you can use to create those dependables, and they get
-integrated into OpenAPI so they are shown in the automatic docs UI, they can be used
-by automatically generated clients and SDKs, etc.
+There are multiple tools that you can use to create those dependables, and they get integrated into OpenAPI so they are shown in the automatic docs UI, they can be used by automatically generated clients and SDKs, etc.
 
 You can import them from `fastapi.security`:
 
index ce66f17b3d08e85cde4b2ef729f300f3555ee10f..2712310783c62bdc8b7e6258b780255c38fed76f 100644 (file)
@@ -2,8 +2,7 @@
 
 You can use the `StaticFiles` class to serve static files, like JavaScript, CSS, images, etc.
 
-Read more about it in the
-[FastAPI docs for Static Files](https://fastapi.tiangolo.com/tutorial/static-files/).
+Read more about it in the [FastAPI docs for Static Files](https://fastapi.tiangolo.com/tutorial/static-files/).
 
 You can import it directly from `fastapi.staticfiles`:
 
index a238007923be8e74eaf32a1bb0dc0adf57b5f565..6e0e816d3371117929ab77ca348bc12271f93ef7 100644 (file)
@@ -16,12 +16,9 @@ For example:
 * 403: `status.HTTP_403_FORBIDDEN`
 * etc.
 
-It can be convenient to quickly access HTTP (and WebSocket) status codes in your app,
-using autocompletion for the name without having to remember the integer status codes
-by memory.
+It can be convenient to quickly access HTTP (and WebSocket) status codes in your app, using autocompletion for the name without having to remember the integer status codes by memory.
 
-Read more about it in the
-[FastAPI docs about Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
+Read more about it in the [FastAPI docs about Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
 
 ## Example
 
index c865badfcb3f5c0592835a5ee902f85c1041b608..eedfe44d54d70ab94580e63c51774b54c291a4e1 100644 (file)
@@ -2,8 +2,7 @@
 
 You can use the `Jinja2Templates` class to render Jinja templates.
 
-Read more about it in the
-[FastAPI docs for Templates](https://fastapi.tiangolo.com/advanced/templates/).
+Read more about it in the [FastAPI docs for Templates](https://fastapi.tiangolo.com/advanced/templates/).
 
 You can import it directly from `fastapi.templating`:
 
index e391d964a28b7c66398f4a94440837004fae12b2..2966ed792ccf90eca301b5f2a5ec552f445780dd 100644 (file)
@@ -2,8 +2,7 @@
 
 You can use the `TestClient` class to test FastAPI applications without creating an actual HTTP and socket connection, just communicating directly with the FastAPI code.
 
-Read more about it in the
-[FastAPI docs for Testing](https://fastapi.tiangolo.com/tutorial/testing/).
+Read more about it in the [FastAPI docs for Testing](https://fastapi.tiangolo.com/tutorial/testing/).
 
 You can import it directly from `fastapi.testclient`:
 
index 45c644b18de9bea590afc3c766ef4243784de142..43a75373036c5fe88a52949dbba0dfd109e35c93 100644 (file)
@@ -1,7 +1,6 @@
 # `UploadFile` class
 
-You can define *path operation function* parameters to be of the type `UploadFile`
-to receive files from the request.
+You can define *path operation function* parameters to be of the type `UploadFile` to receive files from the request.
 
 You can import it directly from `fastapi`:
 
index 2a046946781b4c5ac4bf7b04376e07cc5be9bb3d..d21e81a07d344313d3ea31af50cdfdabccf9144c 100644 (file)
@@ -1,7 +1,6 @@
 # WebSockets
 
-When defining WebSockets, you normally declare a parameter of type `WebSocket` and
-with it you can read data from the client and send data to it.
+When defining WebSockets, you normally declare a parameter of type `WebSocket` and with it you can read data from the client and send data to it.
 
 It is provided directly by Starlette, but you can import it from `fastapi`:
 
@@ -10,9 +9,7 @@ from fastapi import WebSocket
 ```
 
 !!! tip
-    When you want to define dependencies that should be compatible with both HTTP and
-    WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a
-    `Request` or a `WebSocket`.
+    When you want to define dependencies that should be compatible with both HTTP and WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a `Request` or a `WebSocket`.
 
 ::: fastapi.WebSocket
     options:
@@ -44,8 +41,7 @@ from fastapi import WebSocket
             - send_json
             - close
 
-When a client disconnects, a `WebSocketDisconnect` exception is raised, you can catch
-it.
+When a client disconnects, a `WebSocketDisconnect` exception is raised, you can catch it.
 
 You can import it directly form `fastapi`:
 
index b2d92840523a3dbaf3859717dbc9dda3e42654d9..eccdd8aebe9155664403d423d991d67fd70d0913 100644 (file)
@@ -136,7 +136,7 @@ We will now use a simple dependency to read a custom `X-Token` header:
 !!! tip
     We are using an invented header to simplify this example.
 
-    But in real cases you will get better results using the integrated [Security utilities](./security/index.md){.internal-link target=_blank}.
+    But in real cases you will get better results using the integrated [Security utilities](security/index.md){.internal-link target=_blank}.
 
 ## Another module with `APIRouter`
 
@@ -329,7 +329,7 @@ The section:
 from .routers import items, users
 ```
 
-Means:
+means:
 
 * Starting in the same package that this module (the file `app/main.py`) lives in (the directory `app/`)...
 * look for the subpackage `routers` (the directory at `app/routers/`)...
@@ -373,7 +373,7 @@ from .routers.items import router
 from .routers.users import router
 ```
 
-The `router` from `users` would overwrite the one from `items` and we wouldn't be able to use them at the same time.
+the `router` from `users` would overwrite the one from `items` and we wouldn't be able to use them at the same time.
 
 So, to be able to use both of them in the same file, we import the submodules directly:
 
index 39d133c55f3dd8d813a9683ab911f36aa37e5e53..3ba2632d8f5860b79e2f6b5ec8c33fb20f66efe0 100644 (file)
@@ -48,7 +48,7 @@ You can also use the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/
 
 This means that you can send only the data that you want to update, leaving the rest intact.
 
-!!! Note
+!!! note
     `PATCH` is less commonly used and known than `PUT`.
 
     And many teams use only `PUT`, even for partial updates.
index 842f2adf6ba272fd1e40f4b5b513c36b78b45ae1..4b958a665336d76d2be76cf4178de69a8bfdcade 100644 (file)
@@ -271,6 +271,12 @@ Now you can declare your dependency using this class.
 
 Notice how we write `CommonQueryParams` twice in the above code:
 
+=== "Python 3.8+"
+
+    ```Python
+    commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
+    ```
+
 === "Python 3.8+ non-Annotated"
 
     !!! tip
@@ -280,12 +286,6 @@ Notice how we write `CommonQueryParams` twice in the above code:
     commons: CommonQueryParams = Depends(CommonQueryParams)
     ```
 
-=== "Python 3.8+"
-
-    ```Python
-    commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
-    ```
-
 The last `CommonQueryParams`, in:
 
 ```Python
@@ -334,7 +334,7 @@ You could actually write just:
     commons = Depends(CommonQueryParams)
     ```
 
-..as in:
+...as in:
 
 === "Python 3.10+"
 
@@ -380,6 +380,12 @@ But declaring the type is encouraged as that way your editor will know what will
 
 But you see that we are having some code repetition here, writing `CommonQueryParams` twice:
 
+=== "Python 3.8+"
+
+    ```Python
+    commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
+    ```
+
 === "Python 3.8+ non-Annotated"
 
     !!! tip
@@ -389,12 +395,6 @@ But you see that we are having some code repetition here, writing `CommonQueryPa
     commons: CommonQueryParams = Depends(CommonQueryParams)
     ```
 
-=== "Python 3.8+"
-
-    ```Python
-    commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
-    ```
-
 **FastAPI** provides a shortcut for these cases, in where the dependency is *specifically* a class that **FastAPI** will "call" to create an instance of the class itself.
 
 For those specific cases, you can do the following:
index 608ced407ea49abad1a0df3463cecf716cebd4d5..e05d4068563182923a8cda1873595124fdd363c0 100644 (file)
@@ -257,7 +257,7 @@ And you can declare dependencies with `async def` inside of normal `def` *path o
 It doesn't matter. **FastAPI** will know what to do.
 
 !!! note
-    If you don't know, check the [Async: *"In a hurry?"*](../../async.md){.internal-link target=_blank} section about `async` and `await` in the docs.
+    If you don't know, check the [Async: *"In a hurry?"*](../../async.md#in-a-hurry){.internal-link target=_blank} section about `async` and `await` in the docs.
 
 ## Integrated with OpenAPI
 
index 49b00c73057c084cccbb32925f023dd89360f342..cc0680cfd89436d20317ac986fe149208682e022 100644 (file)
@@ -83,7 +83,7 @@ So, continuing with the `user_dict` from above, writing:
 UserInDB(**user_dict)
 ```
 
-Would result in something equivalent to:
+would result in something equivalent to:
 
 ```Python
 UserInDB(
index 0e6292629a613a064c9a73b880b80b750bcf4bf1..75d5df1064bb753e16b698cdcc6bd2aef4b35f08 100644 (file)
@@ -338,7 +338,7 @@ Your response model could have default values, like:
 
 * `description: Union[str, None] = None` (or `str | None = None` in Python 3.10) has a default of `None`.
 * `tax: float = 10.5` has a default of `10.5`.
-* `tags: List[str] = []` as a default of an empty list: `[]`.
+* `tags: List[str] = []` has a default of an empty list: `[]`.
 
 but you might want to omit them from the result if they were not actually stored.
 
index 9bb9ba4e31d910f347656c5efffee1308b64d78e..40231dc0be0c1414ce1e6bff5966619b0bd627d1 100644 (file)
@@ -305,7 +305,7 @@ This new `examples` field in JSON Schema is **just a `list`** of examples, not a
 
 ### Pydantic and FastAPI `examples`
 
-When you add `examples` inside of a Pydantic model, using `schema_extra` or `Field(examples=["something"])` that example is added to the **JSON Schema** for that Pydantic model.
+When you add `examples` inside a Pydantic model, using `schema_extra` or `Field(examples=["something"])` that example is added to the **JSON Schema** for that Pydantic model.
 
 And that **JSON Schema** of the Pydantic model is included in the **OpenAPI** of your API, and then it's used in the docs UI.
 
index 1c792e3d9e5993c024dfc61752608ed5faafa620..b02d00c3f51f419575d9a9d301f7af79115148a4 100644 (file)
@@ -260,7 +260,7 @@ If the token is invalid, return an HTTP error right away.
 
 Create a `timedelta` with the expiration time of the token.
 
-Create a real JWT access token and return it
+Create a real JWT access token and return it.
 
 === "Python 3.10+"
 
index 88edc9eab98376bde9c5075b481a0ff8bbe07cab..6f40531d777119387ad9cca54d2d97bfd0f5820d 100644 (file)
@@ -118,7 +118,7 @@ First, import `OAuth2PasswordRequestForm`, and use it as a dependency with `Depe
 
 Now, get the user data from the (fake) database, using the `username` from the form field.
 
-If there is no such user, we return an error saying "incorrect username or password".
+If there is no such user, we return an error saying "Incorrect username or password".
 
 For the error, we use the exception `HTTPException`:
 
@@ -416,7 +416,7 @@ Password: `secret2`
 
 And try to use the operation `GET` with the path `/users/me`.
 
-You will get an "inactive user" error, like:
+You will get an "Inactive user" error, like:
 
 ```JSON
 {
index 1a2000f02ba6e0265fc9da595756cdd3932d1b4b..0b4d06b99ce17bb2fa2b5aa5a94f132b28a2cfd1 100644 (file)
@@ -546,7 +546,7 @@ Our dependency will create a new SQLAlchemy `SessionLocal` that will be used in
 
     This way we make sure the database session is always closed after the request. Even if there was an exception while processing the request.
 
-    But you can't raise another exception from the exit code (after `yield`). See more in [Dependencies with `yield` and `HTTPException`](./dependencies/dependencies-with-yield.md#dependencies-with-yield-and-httpexception){.internal-link target=_blank}
+    But you can't raise another exception from the exit code (after `yield`). See more in [Dependencies with `yield` and `HTTPException`](dependencies/dependencies-with-yield.md#dependencies-with-yield-and-httpexception){.internal-link target=_blank}
 
 And then, when using the dependency in a *path operation function*, we declare it with the type `Session` we imported directly from SQLAlchemy.
 
index 3f8dd69a1d74e140f82253f6430f28d0190fe0aa..8d199a4c7b4f7417de0b2d0821ef369d2813d99d 100644 (file)
@@ -50,7 +50,7 @@ And your **FastAPI** application might also be composed of several files/modules
 
 ### **FastAPI** app file
 
-Let's say you have a file structure as described in [Bigger Applications](./bigger-applications.md){.internal-link target=_blank}:
+Let's say you have a file structure as described in [Bigger Applications](bigger-applications.md){.internal-link target=_blank}:
 
 ```
 .
index dcd6154be41e948aaadc76688db4773b8705313c..18159775d4b1bdefb1365a7d0a821a74edb3ba21 100644 (file)
@@ -400,7 +400,7 @@ Cuando declaras una *path operation function* con `def` normal en lugar de `asyn
 
 Si vienes de otro framework asíncrono que no funciona de la manera descrita anteriormente y estás acostumbrado a definir *path operation functions* del tipo sólo cálculo con `def` simple para una pequeña ganancia de rendimiento (aproximadamente 100 nanosegundos), ten en cuenta que en **FastAPI** el efecto sería bastante opuesto. En estos casos, es mejor usar `async def` a menos que tus *path operation functions* usen un código que realice el bloqueo <abbr title="Input/Output: disk reading or writing, network communications.">I/O</abbr>.
 
-Aún así, en ambas situaciones, es probable que **FastAPI** sea [aún más rápido](index.md#performance){.Internal-link target=_blank} que (o al menos comparable) a tu framework anterior.
+Aún así, en ambas situaciones, es probable que **FastAPI** sea [aún más rápido](index.md#rendimiento){.Internal-link target=_blank} que (o al menos comparable) a tu framework anterior.
 
 ### Dependencias
 
index b3d9c8bf220b5a8bd6525f63124d2d332db154ee..776d98ce52fc859d9ff841ab7059d92c3a237888 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index 2cb7e63084878644193025497717e7370abef1f7..c37ce00fb24c19c6f07ca7c4ea89974216f56ceb 100644 (file)
@@ -310,7 +310,7 @@ También podrías definirla como una función estándar en lugar de `async def`:
 ```
 
 !!! note "Nota"
-    Si no sabes la diferencia, revisa el [Async: *"¿Tienes prisa?"*](../async.md#in-a-hurry){.internal-link target=_blank}.
+    Si no sabes la diferencia, revisa el [Async: *"¿Tienes prisa?"*](../async.md#tienes-prisa){.internal-link target=_blank}.
 
 ### Paso 5: devuelve el contenido
 
index f0dff02b426ed1fc666e570d6a7f118e0f7fde9a..f11820ef2c84981ae1f0ee6fe274efbf899ac64c 100644 (file)
@@ -50,7 +50,7 @@ $ pip install "fastapi[all]"
 
 ...eso también incluye `uvicorn` que puedes usar como el servidor que ejecuta tu código.
 
-!!! nota
+!!! note "Nota"
     También puedes instalarlo parte por parte.
 
     Esto es lo que probablemente harías una vez que desees implementar tu aplicación en producción:
index 482af8dc06f74eb0f03b4c82f0f0c5a6eee4a3a4..76dc331a93da1fc1e14afa63e354e31c4f0ac4a0 100644 (file)
@@ -194,4 +194,4 @@ En este caso hay 3 parámetros de query:
 * `limit`, un `int` opcional.
 
 !!! tip "Consejo"
-    También podrías usar los `Enum`s de la misma manera que con los [Parámetros de path](path-params.md#predefined-values){.internal-link target=_blank}.
+    También podrías usar los `Enum`s de la misma manera que con los [Parámetros de path](path-params.md#valores-predefinidos){.internal-link target=_blank}.
index f3a948414a155f643ab2721291051fade1cb8582..6f2359b94ee513b4e96d1ecbde27fb89578ded42 100644 (file)
@@ -69,4 +69,4 @@ $ uvicorn main:app --reload
 
 و زیر برنامه ها نیز می تواند زیر برنامه های متصل شده خود را داشته باشد و همه چیز به درستی کار کند، زیرا FastAPI تمام این مسیرهای `root_path` را به طور خودکار مدیریت می کند.
 
-در بخش [پشت پراکسی](./behind-a-proxy.md){.internal-link target=_blank}. درباره `root_path` و نحوه استفاده درست از آن بیشتر خواهید آموخت.
+در بخش [پشت پراکسی](behind-a-proxy.md){.internal-link target=_blank}. درباره `root_path` و نحوه استفاده درست از آن بیشتر خواهید آموخت.
index e5231ec8d5ed9dd1808d4e31a9afd52cc726c47c..71c23b7f7baa185aa271168b04df0ea821ed36bf 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -30,7 +39,7 @@ FastAPI یک وب فریم‌ورک مدرن و سریع (با کارایی با
 
 ویژگی‌های کلیدی این فریم‌ورک عبارتند از:
 
-* **<abbr title="Fast">سرعت</abbr>**: کارایی بسیار بالا و قابل مقایسه با  **NodeJS** و **Go** (با تشکر از Starlette و Pydantic). [یکی از سریع‌ترین فریم‌ورک‌های پایتونی موجود](#performance).
+* **<abbr title="Fast">سرعت</abbr>**: کارایی بسیار بالا و قابل مقایسه با  **NodeJS** و **Go** (با تشکر از Starlette و Pydantic). [یکی از سریع‌ترین فریم‌ورک‌های پایتونی موجود](#_10).
 
 * **<abbr title="Fast to code">کدنویسی سریع</abbr>**: افزایش ۲۰۰ تا ۳۰۰ درصدی سرعت توسعه قابلیت‌های جدید. *
 * **<abbr title="Fewer bugs">باگ کمتر</abbr>**: کاهش ۴۰ درصدی خطاهای انسانی (برنامه‌نویسی). *
index 35b57594d597537273e7c7171062ecd7dd124bd7..685a054ad6293948b06fb4a5e3edddd3fde3881b 100644 (file)
@@ -1,6 +1,6 @@
 # Réponses supplémentaires dans OpenAPI
 
-!!! Attention
+!!! warning "Attention"
     Ceci concerne un sujet plutôt avancé.
 
     Si vous débutez avec **FastAPI**, vous n'en aurez peut-être pas besoin.
@@ -27,10 +27,10 @@ Par exemple, pour déclarer une autre réponse avec un code HTTP `404` et un mod
 {!../../../docs_src/additional_responses/tutorial001.py!}
 ```
 
-!!! Remarque
+!!! note "Remarque"
     Gardez à l'esprit que vous devez renvoyer directement `JSONResponse`.
 
-!!! Info
+!!! info
     La clé `model` ne fait pas partie d'OpenAPI.
 
     **FastAPI** prendra le modèle Pydantic à partir de là, générera le `JSON Schema` et le placera au bon endroit.
@@ -172,10 +172,10 @@ Par exemple, vous pouvez ajouter un type de média supplémentaire `image/png`,
 {!../../../docs_src/additional_responses/tutorial002.py!}
 ```
 
-!!! Remarque
+!!! note "Remarque"
     Notez que vous devez retourner l'image en utilisant directement un `FileResponse`.
 
-!!! Info
+!!! info
     À moins que vous ne spécifiiez explicitement un type de média différent dans votre paramètre `responses`, FastAPI supposera que la réponse a le même type de média que la classe de réponse principale (par défaut `application/json`).
 
     Mais si vous avez spécifié une classe de réponse personnalisée avec `None` comme type de média, FastAPI utilisera `application/json` pour toute réponse supplémentaire associée à un modèle.
@@ -206,7 +206,7 @@ Vous voulez peut-être avoir des réponses prédéfinies qui s'appliquent à de
 
 Dans ces cas, vous pouvez utiliser la technique Python "d'affection par décomposition" (appelé _unpacking_ en anglais) d'un `dict` avec `**dict_to_unpack` :
 
-``` Python
+```Python
 old_dict = {
     "old key": "old value",
     "second old key": "second old value",
@@ -216,7 +216,7 @@ new_dict = {**old_dict, "new key": "new value"}
 
 Ici, `new_dict` contiendra toutes les paires clé-valeur de `old_dict` plus la nouvelle paire clé-valeur :
 
-``` Python
+```Python
 {
     "old key": "old value",
     "second old key": "second old value",
index e7b003707bf8493687ef25228a30b947fa3fc707..51f0db7371202c34df805a8652344dc9f3b868bc 100644 (file)
@@ -18,7 +18,7 @@ Pour y parvenir, importez `JSONResponse` et renvoyez-y directement votre contenu
 {!../../../docs_src/additional_status_codes/tutorial001.py!}
 ```
 
-!!! Attention
+!!! warning "Attention"
     Lorsque vous renvoyez une `Response` directement, comme dans l'exemple ci-dessus, elle sera renvoyée directement.
 
     Elle ne sera pas sérialisée avec un modèle.
index aa37f180635e9fe458b88a9e37d8bb0ee134d4f8..4599bcb6fff2988e933fc75a5eb7edc8291132a4 100644 (file)
@@ -6,7 +6,7 @@ Le [Tutoriel - Guide de l'utilisateur](../tutorial/index.md){.internal-link targ
 
 Dans les sections suivantes, vous verrez des options, configurations et fonctionnalités supplémentaires.
 
-!!! Note
+!!! note "Remarque"
     Les sections de ce chapitre ne sont **pas nécessairement "avancées"**.
 
     Et il est possible que pour votre cas d'utilisation, la solution se trouve dans l'un d'entre eux.
index 7ded97ce1755a08c57f3a06bcc9c507e5c380e6d..77f551aea9b43d282a8636aebabf3bc92b92b1c1 100644 (file)
@@ -2,7 +2,7 @@
 
 ## ID d'opération OpenAPI
 
-!!! Attention
+!!! warning "Attention"
     Si vous n'êtes pas un "expert" en OpenAPI, vous n'en avez probablement pas besoin.
 
 Dans OpenAPI, les chemins sont des ressources, tels que /users/ ou /items/, exposées par votre API, et les opérations sont les méthodes HTTP utilisées pour manipuler ces chemins, telles que GET, POST ou DELETE. Les operationId sont des chaînes uniques facultatives utilisées pour identifier une opération d'un chemin. Vous pouvez définir l'OpenAPI `operationId` à utiliser dans votre *opération de chemin* avec le paramètre `operation_id`.
@@ -23,10 +23,10 @@ Vous devriez le faire après avoir ajouté toutes vos *paramètres de chemin*.
 {!../../../docs_src/path_operation_advanced_configuration/tutorial002.py!}
 ```
 
-!!! Astuce
+!!! tip "Astuce"
     Si vous appelez manuellement `app.openapi()`, vous devez mettre à jour les `operationId` avant.
 
-!!! Attention
+!!! warning "Attention"
     Pour faire cela, vous devez vous assurer que chacun de vos *chemin* ait un nom unique.
 
     Même s'ils se trouvent dans des modules différents (fichiers Python).
@@ -59,7 +59,7 @@ Cela définit les métadonnées sur la réponse principale d'une *opération de
 
 Vous pouvez également déclarer des réponses supplémentaires avec leurs modèles, codes de statut, etc.
 
-Il y a un chapitre entier ici dans la documentation à ce sujet, vous pouvez le lire sur [Réponses supplémentaires dans OpenAPI](./additional-responses.md){.internal-link target=_blank}.
+Il y a un chapitre entier ici dans la documentation à ce sujet, vous pouvez le lire sur [Réponses supplémentaires dans OpenAPI](additional-responses.md){.internal-link target=_blank}.
 
 ## OpenAPI supplémentaire
 
@@ -74,8 +74,8 @@ Il inclut les `tags`, `parameters`, `requestBody`, `responses`, etc.
 
 Ce schéma OpenAPI spécifique aux *operations* est normalement généré automatiquement par **FastAPI**, mais vous pouvez également l'étendre.
 
-!!! Astuce
-    Si vous avez seulement besoin de déclarer des réponses supplémentaires, un moyen plus pratique de le faire est d'utiliser les [réponses supplémentaires dans OpenAPI](./additional-responses.md){.internal-link target=_blank}.
+!!! tip "Astuce"
+    Si vous avez seulement besoin de déclarer des réponses supplémentaires, un moyen plus pratique de le faire est d'utiliser les [réponses supplémentaires dans OpenAPI](additional-responses.md){.internal-link target=_blank}.
 
 Vous pouvez étendre le schéma OpenAPI pour une *opération de chemin* en utilisant le paramètre `openapi_extra`.
 
@@ -162,7 +162,7 @@ Et nous analysons directement ce contenu YAML, puis nous utilisons à nouveau le
 {!../../../docs_src/path_operation_advanced_configuration/tutorial007.py!}
 ```
 
-!!! Astuce
+!!! tip "Astuce"
     Ici, nous réutilisons le même modèle Pydantic.
 
     Mais nous aurions pu tout aussi bien pu le valider d'une autre manière.
index 1c923fb82ca3d39c9a99e0eea1171dcd1915e4d3..ed29446d4c50d56755fecba759f73d174db4200c 100644 (file)
@@ -14,7 +14,7 @@ Cela peut être utile, par exemple, pour retourner des en-têtes personnalisés
 
 En fait, vous pouvez retourner n'importe quelle `Response` ou n'importe quelle sous-classe de celle-ci.
 
-!!! Note
+!!! note "Remarque"
     `JSONResponse` est elle-même une sous-classe de `Response`.
 
 Et quand vous retournez une `Response`, **FastAPI** la transmet directement.
index 275a9bd37c8b3f1cf7dbe1faa5b77970b81ad6ad..d99dcd9c2b608daaaf49128b7818b9ecee765ef4 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # La communauté FastAPI
 
 FastAPI a une communauté extraordinaire qui accueille des personnes de tous horizons.
@@ -18,7 +23,7 @@ C'est moi :
 </div>
 {% endif %}
 
-Je suis le créateur et le responsable de **FastAPI**. Vous pouvez en lire plus à ce sujet dans [Aide FastAPI - Obtenir de l'aide - Se rapprocher de l'auteur](help-fastapi.md#connect-with-the-author){.internal-link target=_blank}.
+Je suis le créateur et le responsable de **FastAPI**. Vous pouvez en lire plus à ce sujet dans [Aide FastAPI - Obtenir de l'aide - Se rapprocher de l'auteur](help-fastapi.md#se-rapprocher-de-lauteur){.internal-link target=_blank}.
 
 ...Mais ici, je veux vous montrer la communauté.
 
@@ -28,15 +33,15 @@ Je suis le créateur et le responsable de **FastAPI**. Vous pouvez en lire plus
 
 Ce sont ces personnes qui :
 
-* [Aident les autres à résoudre des problèmes (questions) dans GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}.
-* [Créent des Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}.
-* Review les Pull Requests, [particulièrement important pour les traductions](contributing.md#translations){.internal-link target=_blank}.
+* [Aident les autres à résoudre des problèmes (questions) dans GitHub](help-fastapi.md#aider-les-autres-a-resoudre-les-problemes-dans-github){.internal-link target=_blank}.
+* [Créent des Pull Requests](help-fastapi.md#creer-une-pull-request){.internal-link target=_blank}.
+* Review les Pull Requests, [particulièrement important pour les traductions](contributing.md#traductions){.internal-link target=_blank}.
 
 Une salve d'applaudissements pour eux. 👏 🙇
 
 ## Utilisateurs les plus actifs le mois dernier
 
-Ce sont les utilisateurs qui ont [aidé le plus les autres avec des problèmes (questions) dans GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} au cours du dernier mois. ☕
+Ce sont les utilisateurs qui ont [aidé le plus les autres avec des problèmes (questions) dans GitHub](help-fastapi.md#aider-les-autres-a-resoudre-les-problemes-dans-github){.internal-link target=_blank} au cours du dernier mois. ☕
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -52,7 +57,7 @@ Ce sont les utilisateurs qui ont [aidé le plus les autres avec des problèmes (
 
 Voici les **Experts FastAPI**. 🤓
 
-Ce sont les utilisateurs qui ont [aidé le plus les autres avec des problèmes (questions) dans GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} depuis *toujours*.
+Ce sont les utilisateurs qui ont [aidé le plus les autres avec des problèmes (questions) dans GitHub](help-fastapi.md#aider-les-autres-a-resoudre-les-problemes-dans-github){.internal-link target=_blank} depuis *toujours*.
 
 Ils ont prouvé qu'ils étaient des experts en aidant beaucoup d'autres personnes. ✨
 
@@ -70,7 +75,7 @@ Ils ont prouvé qu'ils étaient des experts en aidant beaucoup d'autres personne
 
 Ces utilisateurs sont les **Principaux contributeurs**. 👷
 
-Ces utilisateurs ont [créé le plus grand nombre de demandes Pull Request](help-fastapi.md#create-a-pull-request){.internal-link target=_blank} qui ont été *merged*.
+Ces utilisateurs ont [créé le plus grand nombre de demandes Pull Request](help-fastapi.md#creer-une-pull-request){.internal-link target=_blank} qui ont été *merged*.
 
 Ils ont contribué au code source, à la documentation, aux traductions, etc. 📦
 
@@ -92,7 +97,7 @@ Ces utilisateurs sont les **Principaux Reviewers**. 🕵️
 
 ### Reviewers des traductions
 
-Je ne parle que quelques langues (et pas très bien 😅). Ainsi, les reviewers sont ceux qui ont le [**pouvoir d'approuver les traductions**](contributing.md#translations){.internal-link target=_blank} de la documentation. Sans eux, il n'y aurait pas de documentation dans plusieurs autres langues.
+Je ne parle que quelques langues (et pas très bien 😅). Ainsi, les reviewers sont ceux qui ont le [**pouvoir d'approuver les traductions**](contributing.md#traductions){.internal-link target=_blank} de la documentation. Sans eux, il n'y aurait pas de documentation dans plusieurs autres langues.
 
 ---
 
index 1457df2a5c1a384646338684b322ecd32be074c0..da1c70df9a3bd13538eadab2e0c41edab27aeead 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Fonctionnalités
 
 ## Fonctionnalités de FastAPI
index bc3ae3c06307df54cc661eab783485dc58c802ed..eb02e2a0cc55fe05a7641f591252961a68f45528 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index 817545c1c67258155c227b14fc03c0b1722238fa..523e2c8c2677456cfd4fedf8401f93e910ced4de 100644 (file)
@@ -28,7 +28,7 @@ Vous pouvez déclarer le type d'un paramètre de chemin dans la fonction, en uti
 
 Ici, `item_id` est déclaré comme `int`.
 
-!!! hint "Astuce"
+!!! check "vérifier"
     Ceci vous permettra d'obtenir des fonctionnalités de l'éditeur dans votre fonction, telles
     que des vérifications d'erreur, de l'auto-complétion, etc.
 
@@ -40,7 +40,7 @@ Si vous exécutez cet exemple et allez sur <a href="http://127.0.0.1:8000/items/
 {"item_id":3}
 ```
 
-!!! hint "Astuce"
+!!! check "vérifier"
     Comme vous l'avez remarqué, la valeur reçue par la fonction (et renvoyée ensuite) est `3`,
     en tant qu'entier (`int`) Python, pas la chaîne de caractères (`string`) `"3"`.
 
@@ -72,7 +72,7 @@ La même erreur se produira si vous passez un nombre flottant (`float`) et non u
 <a href="http://127.0.0.1:8000/items/4.2" class="external-link" target="_blank">http://127.0.0.1:8000/items/4.2</a>.
 
 
-!!! hint "Astuce"
+!!! check "vérifier"
     Donc, avec ces mêmes déclarations de type Python, **FastAPI** vous fournit de la validation de données.
 
     Notez que l'erreur mentionne le point exact où la validation n'a pas réussi.
index 335a227436f81c777546db7244760a3fb548ab1f..8f1f2a124504c61bc8d4bafe4f34a2c3bfbd1d0d 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -31,7 +40,7 @@ FastAPI היא תשתית רשת מודרנית ומהירה (ביצועים ג
 
 תכונות המפתח הן:
 
--   **מהירה**: ביצועים גבוהים מאוד, בקנה אחד עם NodeJS ו - Go (תודות ל - Starlette ו - Pydantic). [אחת מתשתיות הפייתון המהירות ביותר](#performance).
+-   **מהירה**: ביצועים גבוהים מאוד, בקנה אחד עם NodeJS ו - Go (תודות ל - Starlette ו - Pydantic). [אחת מתשתיות הפייתון המהירות ביותר](#_14).
 
 -   **מהירה לתכנות**: הגבירו את מהירות פיתוח התכונות החדשות בכ - %200 עד %300. \*
 -   **פחות שגיאות**: מנעו כ - %40 משגיאות אנוש (מפתחים). \*
index b8ed96ae1f6fc08bc3ea3279afa6dd2d520039aa..6b6de24f09f2d4a9f61bb278866f0edd09fcb16f 100644 (file)
@@ -52,7 +52,7 @@ $ pip install "fastapi[all]"
 
 ...yang juga termasuk `uvicorn`, yang dapat kamu gunakan sebagai server yang menjalankan kodemu.
 
-!!! catatan
+!!! note "Catatan"
     Kamu juga dapat meng-installnya bagian demi bagian.
 
     Hal ini mungkin yang akan kamu lakukan ketika kamu hendak menyebarkan (men-deploy) aplikasimu ke tahap produksi:
index 934cea0ef0dda4f3c4d43ef5a24d5aa525226be8..5e38d1cec1a1fdfeabf7fd23d9f7f1be4df7ec5b 100644 (file)
@@ -368,7 +368,7 @@ async def read_burgers():
 
 上記の方法と違った方法の別の非同期フレームワークから来ており、小さなパフォーマンス向上 (約100ナノ秒) のために通常の `def` を使用して些細な演算のみ行う *path operation 関数* を定義するのに慣れている場合は、**FastAPI**ではまったく逆の効果になることに注意してください。このような場合、*path operation 関数* がブロッキング<abbr title="入力/出力: ディスクの読み取りまたは書き込み、ネットワーク通信。">I/O</abbr>を実行しないのであれば、`async def` の使用をお勧めします。
 
-それでも、どちらの状況でも、**FastAPI**が過去のフレームワークよりも (またはそれに匹敵するほど) [高速になる](index.md#performance){.internal-link target=_blank}可能性があります。
+それでも、どちらの状況でも、**FastAPI**が過去のフレームワークよりも (またはそれに匹敵するほど) [高速になる](index.md#_10){.internal-link target=_blank}可能性があります。
 
 ### 依存関係
 
@@ -390,4 +390,4 @@ async def read_burgers():
 
 繰り返しになりますが、これらは非常に技術的な詳細であり、検索して辿り着いた場合は役立つでしょう。
 
-それ以外の場合は、上記のセクションのガイドラインで問題ないはずです: <a href="#in-a-hurry">急いでいますか?</a>。
+それ以外の場合は、上記のセクションのガイドラインで問題ないはずです: <a href="#_1">急いでいますか?</a>。
index 38cbca2192468c57f6c93212ad783bd66cc2cda0..abe4f2c662656f842b7ee333647198ddbf568e23 100644 (file)
@@ -30,7 +30,7 @@
 ## セキュリティ - HTTPS
 
 <!-- NOTE: https.md written in Japanese does not exist, so it redirects to English one  -->
-[前チャプターのHTTPSについて](./https.md){.internal-link target=_blank}では、HTTPSがどのようにAPIを暗号化するのかについて学びました。
+[前チャプターのHTTPSについて](https.md){.internal-link target=_blank}では、HTTPSがどのようにAPIを暗号化するのかについて学びました。
 
 通常、アプリケーションサーバにとって**外部の**コンポーネントである**TLS Termination Proxy**によって提供されることが一般的です。このプロキシは通信の暗号化を担当します。
 
@@ -188,7 +188,7 @@ FastAPI アプリケーションでは、Uvicorn のようなサーバープロ
 ### ワーカー・プロセス と ポート
 <!-- NOTE: https.md written in Japanese does not exist, so it redirects to English one  -->
 
-[HTTPSについて](./https.md){.internal-link target=_blank}のドキュメントで、1つのサーバーで1つのポートとIPアドレスの組み合わせでリッスンできるのは1つのプロセスだけであることを覚えていますでしょうか?
+[HTTPSについて](https.md){.internal-link target=_blank}のドキュメントで、1つのサーバーで1つのポートとIPアドレスの組み合わせでリッスンできるのは1つのプロセスだけであることを覚えていますでしょうか?
 
 これはいまだに同じです。
 
@@ -247,7 +247,7 @@ FastAPI アプリケーションでは、Uvicorn のようなサーバープロ
     これらの**コンテナ**やDockerそしてKubernetesに関する項目が、まだあまり意味をなしていなくても心配しないでください。
     <!-- NOTE: the current version of docker.md is outdated compared to English one. -->
 
-    コンテナ・イメージ、Docker、Kubernetesなどについては、次の章で詳しく説明します: [コンテナ内のFastAPI - Docker](./docker.md){.internal-link target=_blank}.
+    コンテナ・イメージ、Docker、Kubernetesなどについては、次の章で詳しく説明します: [コンテナ内のFastAPI - Docker](docker.md){.internal-link target=_blank}.
 
 ## 開始前の事前のステップ
 
@@ -282,7 +282,7 @@ FastAPI アプリケーションでは、Uvicorn のようなサーバープロ
 
 !!! tip
    <!-- NOTE: the current version of docker.md is outdated compared to English one. -->
-   コンテナを使った具体的な例については、次の章で紹介します: [コンテナ内のFastAPI - Docker](./docker.md){.internal-link target=_blank}.
+   コンテナを使った具体的な例については、次の章で紹介します: [コンテナ内のFastAPI - Docker](docker.md){.internal-link target=_blank}.
 
 ## リソースの利用
 
index ca9dedc3c1c9a1d9776615223e532aaa532a5774..0c9df648d13237a026d75f90b495d6ceee55973d 100644 (file)
@@ -117,7 +117,7 @@ FastAPI用の**Dockerイメージ**を、**公式Python**イメージに基づ
 
 最も一般的な方法は、`requirements.txt` ファイルにパッケージ名とそのバージョンを 1 行ずつ書くことです。
 
-もちろん、[FastAPI バージョンについて](./versions.md){.internal-link target=_blank}で読んだのと同じアイデアを使用して、バージョンの範囲を設定します。
+もちろん、[FastAPI バージョンについて](versions.md){.internal-link target=_blank}で読んだのと同じアイデアを使用して、バージョンの範囲を設定します。
 
 例えば、`requirements.txt` は次のようになります:
 
@@ -384,7 +384,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## デプロイメントのコンセプト
 
-コンテナという観点から、[デプロイのコンセプト](./concepts.md){.internal-link target=_blank}に共通するいくつかについて、もう一度説明しましょう。
+コンテナという観点から、[デプロイのコンセプト](concepts.md){.internal-link target=_blank}に共通するいくつかについて、もう一度説明しましょう。
 
 コンテナは主に、アプリケーションの**ビルドとデプロイ**のプロセスを簡素化するためのツールですが、これらの**デプロイのコンセプト**を扱うための特定のアプローチを強制するものではないです。
 
@@ -461,7 +461,7 @@ Kubernetesのような分散コンテナ管理システムの1つは通常、入
 
 もちろん、**特殊なケース**として、**Gunicornプロセスマネージャ**を持つ**コンテナ**内で複数の**Uvicornワーカープロセス**を起動させたい場合があります。
 
-このような場合、**公式のDockerイメージ**を使用することができます。このイメージには、複数の**Uvicornワーカープロセス**を実行するプロセスマネージャとして**Gunicorn**が含まれており、現在のCPUコアに基づいてワーカーの数を自動的に調整するためのデフォルト設定がいくつか含まれています。詳しくは後述の[Gunicornによる公式Dockerイメージ - Uvicorn](#gunicornによる公式dockerイメージ---Uvicorn)で説明します。
+このような場合、**公式のDockerイメージ**を使用することができます。このイメージには、複数の**Uvicornワーカープロセス**を実行するプロセスマネージャとして**Gunicorn**が含まれており、現在のCPUコアに基づいてワーカーの数を自動的に調整するためのデフォルト設定がいくつか含まれています。詳しくは後述の[Gunicornによる公式Dockerイメージ - Uvicorn](#gunicorndocker-uvicorn)で説明します。
 
 以下は、それが理にかなっている場合の例です:
 
@@ -531,7 +531,7 @@ Docker Composeで**シングルサーバ**(クラスタではない)にデ
 
 ## Gunicornによる公式Dockerイメージ - Uvicorn
 
-前の章で詳しく説明したように、Uvicornワーカーで動作するGunicornを含む公式のDockerイメージがあります: [Server Workers - Gunicorn と Uvicorn](./server-workers.md){.internal-link target=_blank}で詳しく説明しています。
+前の章で詳しく説明したように、Uvicornワーカーで動作するGunicornを含む公式のDockerイメージがあります: [Server Workers - Gunicorn と Uvicorn](server-workers.md){.internal-link target=_blank}で詳しく説明しています。
 
 このイメージは、主に上記で説明した状況で役に立つでしょう: [複数のプロセスと特殊なケースを持つコンテナ(Containers with Multiple Processes and Special Cases)](#containers-with-multiple-processes-and-special-cases)
 
index e1ea165a2c95d6954c786b4a2f9ea98576a8c61d..51d0bc2d485ec798a4b9440e3bd41822fbaf6b98 100644 (file)
 
 アプリケーションをデプロイする際には、**複数のコア**を利用し、そしてより多くのリクエストを処理できるようにするために、プロセスの**レプリケーション**を持つことを望むでしょう。
 
-前のチャプターである[デプロイメントのコンセプト](./concepts.md){.internal-link target=_blank}にて見てきたように、有効な戦略がいくつかあります。
+前のチャプターである[デプロイメントのコンセプト](concepts.md){.internal-link target=_blank}にて見てきたように、有効な戦略がいくつかあります。
 
 ここでは<a href="https://gunicorn.org/" class="external-link" target="_blank">**Gunicorn**</a>が**Uvicornのワーカー・プロセス**を管理する場合の使い方について紹介していきます。
 
 !!! info
     <!-- NOTE: the current version of docker.md is outdated compared to English one.  -->
-    DockerやKubernetesなどのコンテナを使用している場合は、次の章で詳しく説明します: [コンテナ内のFastAPI - Docker](./docker.md){.internal-link target=_blank}
+    DockerやKubernetesなどのコンテナを使用している場合は、次の章で詳しく説明します: [コンテナ内のFastAPI - Docker](docker.md){.internal-link target=_blank}
 
     特に**Kubernetes**上で実行する場合は、おそらく**Gunicornを使用せず**、**コンテナごとに単一のUvicornプロセス**を実行することになりますが、それについてはこの章の後半で説明します。
 
@@ -167,7 +167,7 @@ $ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
 
 ## コンテナとDocker
 <!-- NOTE: the current version of docker.md is outdated compared to English one.  -->
-次章の[コンテナ内のFastAPI - Docker](./docker.md){.internal-link target=_blank}では、その他の**デプロイのコンセプト**を扱うために実施するであろう戦略をいくつか紹介します。
+次章の[コンテナ内のFastAPI - Docker](docker.md){.internal-link target=_blank}では、その他の**デプロイのコンセプト**を扱うために実施するであろう戦略をいくつか紹介します。
 
 また、**GunicornとUvicornワーカー**を含む**公式Dockerイメージ**と、簡単なケースに役立ついくつかのデフォルト設定も紹介します。
 
index ff75dcbce65b2196faa5b90252844df36515aeed..d92a7bf4620ebef218ad32fccf903eed351f0c87 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # FastAPI People
 
 FastAPIには、様々なバックグラウンドの人々を歓迎する素晴らしいコミュニティがあります。
@@ -19,7 +24,7 @@ FastAPIには、様々なバックグラウンドの人々を歓迎する素晴
 
 {% endif %}
 
-私は **FastAPI** の作成者および Maintainer です。詳しくは [FastAPIを応援 - ヘルプの入手 - 開発者とつながる](help-fastapi.md#開発者とつながる){.internal-link target=_blank} に記載しています。
+私は **FastAPI** の作成者および Maintainer です。詳しくは [FastAPIを応援 - ヘルプの入手 - 開発者とつながる](help-fastapi.md#_1){.internal-link target=_blank} に記載しています。
 
 ...ところで、ここではコミュニティを紹介したいと思います。
 
@@ -29,15 +34,15 @@ FastAPIには、様々なバックグラウンドの人々を歓迎する素晴
 
 紹介するのは次のような人々です:
 
-* [GitHub issuesで他の人を助ける](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}。
+* [GitHub issuesで他の人を助ける](help-fastapi.md#github-issues){.internal-link target=_blank}。
 * [プルリクエストをする](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}。
-* プルリクエストのレビューをする ([特に翻訳に重要](contributing.md#translations){.internal-link target=_blank})。
+* プルリクエストのレビューをする ([特に翻訳に重要](contributing.md#_8){.internal-link target=_blank})。
 
 彼らに大きな拍手を。👏 🙇
 
 ## 先月最もアクティブだったユーザー
 
-彼らは、先月の[GitHub issuesで最も多くの人を助けた](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}ユーザーです。☕
+彼らは、先月の[GitHub issuesで最も多くの人を助けた](help-fastapi.md#github-issues){.internal-link target=_blank}ユーザーです。☕
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -53,7 +58,7 @@ FastAPIには、様々なバックグラウンドの人々を歓迎する素晴
 
 **FastAPI experts** を紹介します。🤓
 
-彼らは、*これまでに* [GitHub issuesで最も多くの人を助けた](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}ユーザーです。
+彼らは、*これまでに* [GitHub issuesで最も多くの人を助けた](help-fastapi.md#github-issues){.internal-link target=_blank}ユーザーです。
 
 多くの人を助けることでexpertsであると示されています。✨
 
@@ -93,7 +98,7 @@ FastAPIには、様々なバックグラウンドの人々を歓迎する素晴
 
 ### 翻訳のレビュー
 
-私は少しの言語しか話せません (もしくはあまり上手ではありません😅)。したがって、reviewers は、ドキュメントの[**翻訳を承認する権限**](contributing.md#translations){.internal-link target=_blank}を持っています。それらがなければ、いくつかの言語のドキュメントはなかったでしょう。
+私は少しの言語しか話せません (もしくはあまり上手ではありません😅)。したがって、reviewers は、ドキュメントの[**翻訳を承認する権限**](contributing.md#_8){.internal-link target=_blank}を持っています。それらがなければ、いくつかの言語のドキュメントはなかったでしょう。
 
 ---
 
index 98c59e7c4958805c42516a30b9a976011e5f7480..64d8758a5205de8a51621a72ac440bc86133ec40 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # 機能
 
 ## FastAPIの機能
index 4f66b1a40ea775f4caccbadd7926fa592d5ca248..37cddae5e8c8b0fb55d52747e319f1da7ba6467b 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -28,7 +37,7 @@ FastAPI は、Pythonの標準である型ヒントに基づいてPython 3.8 以
 
 主な特徴:
 
-- **高速**: **NodeJS** や **Go** 並みのとても高いパフォーマンス (Starlette と Pydantic のおかげです)。 [最も高速な Python フレームワークの一つです](#performance).
+- **高速**: **NodeJS** や **Go** 並みのとても高いパフォーマンス (Starlette と Pydantic のおかげです)。 [最も高速な Python フレームワークの一つです](#_10).
 
 - **高速なコーディング**: 開発速度を約 200%~300%向上させます。 \*
 - **少ないバグ**: 開発者起因のヒューマンエラーを約 40%削減します。 \*
index 7a56ef2b9bba32cc353da8f7ed78eff6e148b3b2..95d328ec50000decbd359cfcd99dc70d0ff94da2 100644 (file)
@@ -34,7 +34,7 @@
 
 つまり、更新したいデータだけを送信して、残りはそのままにしておくことができます。
 
-!!! Note "備考"
+!!! note "備考"
     `PATCH`は`PUT`よりもあまり使われておらず、知られていません。
 
     また、多くのチームは部分的な更新であっても`PUT`だけを使用しています。
index 12332991d063d1e3ab65ac1b1bf812c91c5262cb..ccce9484d8ce7af26a14558af9416e42bc640b56 100644 (file)
@@ -162,4 +162,4 @@ APIはほとんどの場合 **レスポンス** ボディを送らなければ
 
 ## Pydanticを使わない方法
 
-もしPydanticモデルを使用したくない場合は、**Body**パラメータが利用できます。[Body - Multiple Parameters: Singular values in body](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank}を確認してください。
+もしPydanticモデルを使用したくない場合は、**Body**パラメータが利用できます。[Body - Multiple Parameters: Singular values in body](body-multiple-params.md#_2){.internal-link target=_blank}を確認してください。
index 2a89e51d2b27d92b84c3ee18d70b255aab1b631f..c0642efd4789e6c79ce05e5e77edb696142ac539 100644 (file)
@@ -108,7 +108,7 @@ FastAPIは、いくつかの<abbr title='時々"exit"、"cleanup"、"teardown"
 
 `yield`の後の終了コードで`HTTPException`などを発生させたくなるかもしれません。しかし**それはうまくいきません**
 
-`yield`を持つ依存関係の終了コードは[例外ハンドラ](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}の*後に*実行されます。依存関係によって投げられた例外を終了コード(`yield`の後)でキャッチするものはなにもありません。
+`yield`を持つ依存関係の終了コードは[例外ハンドラ](../handling-errors.md#_4){.internal-link target=_blank}の*後に*実行されます。依存関係によって投げられた例外を終了コード(`yield`の後)でキャッチするものはなにもありません。
 
 つまり、`yield`の後に`HTTPException`を発生させた場合、`HTTTPException`をキャッチしてHTTP 400のレスポンスを返すデフォルトの(あるいは任意のカスタムの)例外ハンドラは、その例外をキャッチすることができなくなります。
 
@@ -120,7 +120,7 @@ FastAPIは、いくつかの<abbr title='時々"exit"、"cleanup"、"teardown"
 
 例外が発生する可能性があるコードがある場合は、最も普通の「Python流」なことをして、コードのその部分に`try`ブロックを追加してください。
 
-レスポンスを返したり、レスポンスを変更したり、`HTTPException`を発生させたりする*前に*処理したいカスタム例外がある場合は、[カスタム例外ハンドラ](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}を作成してください。
+レスポンスを返したり、レスポンスを変更したり、`HTTPException`を発生させたりする*前に*処理したいカスタム例外がある場合は、[カスタム例外ハンドラ](../handling-errors.md#_4){.internal-link target=_blank}を作成してください。
 
 !!! tip "豆知識"
     `HTTPException`を含む例外は、`yield`の*前*でも発生させることができます。ただし、後ではできません。
@@ -171,7 +171,7 @@ participant tasks as Background tasks
     いずれかのレスポンスが送信された後、他のレスポンスを送信することはできません。
 
 !!! tip "豆知識"
-    この図は`HTTPException`を示していますが、[カスタム例外ハンドラ](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}を作成することで、他の例外を発生させることもできます。そして、その例外は依存関係の終了コードではなく、そのカスタム例外ハンドラによって処理されます。
+    この図は`HTTPException`を示していますが、[カスタム例外ハンドラ](../handling-errors.md#_4){.internal-link target=_blank}を作成することで、他の例外を発生させることもできます。そして、その例外は依存関係の終了コードではなく、そのカスタム例外ハンドラによって処理されます。
 
     しかし例外ハンドラで処理されない例外を発生させた場合は、依存関係の終了コードで処理されます。
 
index c696f7d489e948ecdeaba9e4f8dbebfa56d4da75..f79ed94a4d59a6f2afe865d374a8282dd8d7da13 100644 (file)
@@ -308,7 +308,7 @@ APIを構築するときは、通常、これらの特定のHTTPメソッドを
 ```
 
 !!! note "備考"
-    違いが分からない場合は、[Async: *"In a hurry?"*](../async.md#in-a-hurry){.internal-link target=_blank}を確認してください。
+    違いが分からない場合は、[Async: *"急いでいますか?"*](../async.md#_1){.internal-link target=_blank}を確認してください。
 
 ### Step 5: コンテンツの返信
 
index 957726b9f02f438bd4f4bc076c0da757ea06aee5..5c4cfc5fcce7b7c169fd3c78533c83851dc5e9e3 100644 (file)
@@ -191,4 +191,4 @@ http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
 
 !!! tip "豆知識"
 
-    [パスパラメータ](path-params.md#predefined-values){.internal-link target=_blank}と同様に `Enum` を使用できます。
+    [パスパラメータ](path-params.md#_8){.internal-link target=_blank}と同様に `Enum` を使用できます。
index f1c43b7b45c94ef9ad748659ddff68ccd5c78fbd..dc3267e62bef50fa3510c6d1a06e65741dca6ee3 100644 (file)
@@ -125,7 +125,7 @@ OAuth2は、バックエンドやAPIがユーザーを認証するサーバー
 
     相対URLを使っているので、APIが`https://example.com/`にある場合、`https://example.com/token`を参照します。しかし、APIが`https://example.com/api/v1/`にある場合は`https://example.com/api/v1/token`を参照することになります。
 
-    相対 URL を使うことは、[プロキシと接続](./.../advanced/behind-a-proxy.md){.internal-link target=_blank}のような高度なユースケースでもアプリケーションを動作させ続けるために重要です。
+    相対 URL を使うことは、[プロキシと接続](../../advanced/behind-a-proxy.md){.internal-link target=_blank}のような高度なユースケースでもアプリケーションを動作させ続けるために重要です。
 
 このパラメーターはエンドポイント/ *path operation*を作成しません。しかし、URL`/token`はクライアントがトークンを取得するために使用するものであると宣言します。この情報は OpenAPI やインタラクティブな API ドキュメントシステムで使われます。
 
index 9bcebd367609edb1e10ffccf99974837427dca4a..65ee124ecd39a7acd8059ae0cc5d6418263a3c2f 100644 (file)
@@ -2,7 +2,7 @@
 
 *경로 작동 함수*에서의 `async def` 문법에 대한 세부사항과 비동기 코드, 동시성 및 병렬성에 대한 배경
 
-## <a name="in-a-hurry"></a>바쁘신 경우
+## 바쁘신 경우
 
 <strong>요약</strong>
 
@@ -263,7 +263,7 @@ CPU에 묶인 연산에 관한 흔한 예시는 복잡한 수학 처리를 필
 
 파이썬이 **데이터 사이언스**, 머신러닝과 특히 딥러닝에 의 주된 언어라는 간단한 사실에 더해서, 이것은 FastAPI를 데이터 사이언스 / 머신러닝 웹 API와 응용프로그램에 (다른 것들보다) 좋은 선택지가 되게 합니다.
 
-배포시 병렬을 어떻게 가능하게 하는지 알고싶다면, [배포](/ko/deployment){.internal-link target=_blank}문서를 참고하십시오.
+배포시 병렬을 어떻게 가능하게 하는지 알고싶다면, [배포](deployment/index.md){.internal-link target=_blank}문서를 참고하십시오.
 
 ## `async`와  `await`
 
@@ -379,7 +379,7 @@ FastAPI를 사용하지 않더라도, 높은 호환성 및 <a href="https://anyi
 
 만약 상기에 묘사된대로 동작하지 않는 비동기 프로그램을 사용해왔고 약간의 성능 향상 (약 100 나노초)을 위해 `def`를 사용해서 계산만을 위한 사소한 *경로 작동 함수*를 정의해왔다면, **FastAPI**는 이와는 반대라는 것에 주의하십시오. 이러한 경우에, *경로 작동 함수*가 블로킹 <abbr title="Input/Output: 디스크 읽기 또는 쓰기, 네트워크 통신.">I/O</abbr>를 수행하는 코드를 사용하지 않는 한 `async def`를 사용하는 편이 더 낫습니다.
 
-하지만 두 경우 모두, FastAPI가 당신이 전에 사용하던 프레임워크보다 [더 빠를](index.md#performance){.internal-link target=_blank} (최소한 비견될) 확률이 높습니다.
+하지만 두 경우 모두, FastAPI가 당신이 전에 사용하던 프레임워크보다 [더 빠를](index.md#_11){.internal-link target=_blank} (최소한 비견될) 확률이 높습니다.
 
 ### 의존성
 
@@ -401,4 +401,4 @@ FastAPI를 사용하지 않더라도, 높은 호환성 및 <a href="https://anyi
 
 다시 말하지만, 이것은 당신이 이것에 대해 찾고있던 경우에 한해 유용할 매우 세부적인 기술사항입니다.
 
-그렇지 않은 경우, 상기의 가이드라인만으로도 충분할 것입니다: [바쁘신 경우](#in-a-hurry).
+그렇지 않은 경우, 상기의 가이드라인만으로도 충분할 것입니다: [바쁘신 경우](#_1).
index 1c7bced2caba42cd2f61df03727757c90b6a5545..0e8f85cae285f6bc66069d094c382547c01fba1f 100644 (file)
@@ -108,7 +108,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
 
 가장 일반적인 방법은 패키지 이름과 버전이 줄 별로 기록된 `requirements.txt` 파일을 만드는 것입니다.
 
-버전의 범위를 설정하기 위해서는 [FastAPI 버전들에 대하여](./versions.md){.internal-link target=_blank}에 쓰여진 것과 같은 아이디어를 사용합니다.
+버전의 범위를 설정하기 위해서는 [FastAPI 버전들에 대하여](versions.md){.internal-link target=_blank}에 쓰여진 것과 같은 아이디어를 사용합니다.
 
 예를 들어, `requirements.txt` 파일은 다음과 같을 수 있습니다:
 
@@ -199,7 +199,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
 
     `--no-cache-dir` 옵션은 `pip`에게 다운로드한 패키지들을 로컬 환경에 저장하지 않도록 전달합니다. 이는 마치 같은 패키지를 설치하기 위해 오직 `pip`만 다시 실행하면 될 것 같지만, 컨테이너로 작업하는 경우 그렇지는 않습니다.
 
-    !!! 노트
+    !!! note "노트"
         `--no-cache-dir` 는 오직 `pip`와 관련되어 있으며, 도커나 컨테이너와는 무관합니다.
 
     `--upgrade` 옵션은 `pip`에게 설치된 패키지들을 업데이트하도록 합니다.
@@ -373,7 +373,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## 배포 개념
 
-이제 컨테이너의 측면에서 [배포 개념](./concepts.md){.internal-link target=_blank}에서 다루었던 것과 같은 배포 개념에 대해 이야기해 보겠습니다.
+이제 컨테이너의 측면에서 [배포 개념](concepts.md){.internal-link target=_blank}에서 다루었던 것과 같은 배포 개념에 대해 이야기해 보겠습니다.
 
 컨테이너는 주로 어플리케이션을 빌드하고 배포하기 위한 과정을 단순화하는 도구이지만, **배포 개념**에 대한 특정한 접근법을 강요하지 않기 때문에 가능한 배포 전략에는 여러가지가 있습니다.
 
@@ -514,7 +514,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## Gunicorn과 함께하는 공식 도커 이미지 - Uvicorn
 
-앞 챕터에서 자세하게 설명된 것 처럼, Uvicorn 워커와 같이 실행되는 Gunicorn을 포함하는 공식 도커 이미지가 있습니다: [서버 워커 - Uvicorn과 함께하는 Gunicorn](./server-workers.md){.internal-link target=_blank}.
+앞 챕터에서 자세하게 설명된 것 처럼, Uvicorn 워커와 같이 실행되는 Gunicorn을 포함하는 공식 도커 이미지가 있습니다: [서버 워커 - Uvicorn과 함께하는 Gunicorn](server-workers.md){.internal-link target=_blank}.
 
 이 이미지는 주로 위에서 설명된 상황에서 유용할 것입니다: [다중 프로세스를 가지는 컨테이너와 특수한 경우들](#containers-with-multiple-processes-and-special-cases).
 
index 5653c55e3ba5615db9a1c8ccfee68ec9004c8c5b..f7ef96094090491e26baa9ecdf0bc736becafdd1 100644 (file)
 
 애플리케이션을 배포할 때 **다중 코어**를 활용하고 더 많은 요청을 처리할 수 있도록 **프로세스 복제본**이 필요합니다.
 
-전 과정이었던 [배포 개념들](./concepts.md){.internal-link target=_blank}에서 본 것처럼 여러가지 방법이 존재합니다.
+전 과정이었던 [배포 개념들](concepts.md){.internal-link target=_blank}에서 본 것처럼 여러가지 방법이 존재합니다.
 
 지금부터 <a href="https://gunicorn.org/" class="external-link" target="_blank">**구니콘**</a>을 **유비콘 워커 프로세스**와 함께 사용하는 방법을 알려드리겠습니다.
 
-!!! 정보
-    만약 도커와 쿠버네티스 같은 컨테이너를 사용하고 있다면 다음 챕터 [FastAPI와 컨테이너 - 도커](./docker.md){.internal-link target=_blank}에서 더 많은 정보를 얻을 수 있습니다.
+!!! info "정보"
+    만약 도커와 쿠버네티스 같은 컨테이너를 사용하고 있다면 다음 챕터 [FastAPI와 컨테이너 - 도커](docker.md){.internal-link target=_blank}에서 더 많은 정보를 얻을 수 있습니다.
 
     특히, 쿠버네티스에서 실행할 때는 구니콘을 사용하지 않고 대신 컨테이너당 하나의 유비콘 프로세스를 실행하는 것이 좋습니다. 이 장의 뒷부분에서 설명하겠습니다.
 
@@ -165,7 +165,7 @@ $ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
 
 ## 컨테이너와 도커
 
-다음 장인 [FastAPI와 컨테이너 - 도커](./docker.md){.internal-link target=_blank}에서 다른 **배포 개념들**을 다루는 전략들을 알려드리겠습니다.
+다음 장인 [FastAPI와 컨테이너 - 도커](docker.md){.internal-link target=_blank}에서 다른 **배포 개념들**을 다루는 전략들을 알려드리겠습니다.
 
 또한 간단한 케이스에서 사용할 수 있는, **구니콘과 유비콘 워커**가 포함돼 있는 **공식 도커 이미지**와 함께 몇 가지 기본 구성을 보여드리겠습니다.
 
index 54479165e8e0abb89af2e18818d30250476afb41..f7b35557caad3c6bc69ce448e2b6dca1380311b6 100644 (file)
@@ -68,7 +68,7 @@ second_user_data = {
 my_second_user: User = User(**second_user_data)
 ```
 
-!!! 정보
+!!! info "정보"
     `**second_user_data`가 뜻하는 것:
 
     `second_user_data` 딕셔너리의 키와 값을 키-값 인자로서 바로 넘겨줍니다. 다음과 동일합니다: `User(id=4, name="Mary", joined="2018-11-30")`
index eeadc0363cd97d0e116f41380df428d9247ded60..85482718e536a09d3531813afb1bb1e14f37f63d 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -28,7 +37,7 @@ FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트
 
 주요 특징으로:
 
-* **빠름**: (Starlette과 Pydantic 덕분에) **NodeJS** 및 **Go**와 대등할 정도로 매우 높은 성능. [사용 가능한 가장 빠른 파이썬 프레임워크 중 하나](#performance).
+* **빠름**: (Starlette과 Pydantic 덕분에) **NodeJS** 및 **Go**와 대등할 정도로 매우 높은 성능. [사용 가능한 가장 빠른 파이썬 프레임워크 중 하나](#_11).
 
 * **빠른 코드 작성**: 약 200%에서 300%까지 기능 개발 속도 증가. *
 * **적은 버그**: 사람(개발자)에 의한 에러 약 40% 감소. *
index fc7209726c201d359d40a91f5fbb2327888b197f..c91d6130b91db467945b41e176c0b08384787c99 100644 (file)
@@ -26,7 +26,7 @@
 
 === "Python 3.10+ Annotated가 없는 경우"
 
-    !!! 
+    !!! tip "팁"
         가능하다면 `Annotated`가 달린 버전을 권장합니다.
 
     ```Python hl_lines="2"
index 8b98284bb2957184ff98614e5acc7f04617c66fe..0ab8b71626001660a12867834a69600ecdc13849 100644 (file)
@@ -8,7 +8,7 @@
 
 **요청** 본문을 선언하기 위해서 모든 강력함과 이점을 갖춘 <a href="https://docs.pydantic.dev/" class="external-link" target="_blank">Pydantic</a> 모델을 사용합니다.
 
-!!! 정보
+!!! info "정보"
     데이터를 보내기 위해, (좀 더 보편적인) `POST`, `PUT`, `DELETE` 혹은 `PATCH` 중에 하나를 사용하는 것이 좋습니다.
 
     `GET` 요청에 본문을 담아 보내는 것은 명세서에 정의되지 않은 행동입니다. 그럼에도 불구하고, 이 방식은 아주 복잡한/극한의 사용 상황에서만 FastAPI에 의해 지원됩니다.
 
 <img src="/img/tutorial/body/image05.png">
 
-!!! 
+!!! tip "팁"
     만약 <a href="https://www.jetbrains.com/pycharm/" class="external-link" target="_blank">PyCharm</a>를 편집기로 사용한다면, <a href="https://github.com/koxudaxi/pydantic-pycharm-plugin/" class="external-link" target="_blank">Pydantic PyCharm Plugin</a>을 사용할 수 있습니다.
 
     다음 사항을 포함해 Pydantic 모델에 대한 편집기 지원을 향상시킵니다:
 * 만약 매개변수가 (`int`, `float`, `str`, `bool` 등과 같은) **유일한 타입**으로 되어있으면, **쿼리** 매개변수로 해석될 것입니다.
 * 만약 매개변수가 **Pydantic 모델** 타입으로 선언되어 있으면, 요청 **본문**으로 해석될 것입니다.
 
-!!! 참고
+!!! note "참고"
     FastAPI는 `q`의 값이 필요없음을 알게 될 것입니다. 기본 값이 `= None`이기 때문입니다.
 
     `Union[str, None]`에 있는 `Union`은 FastAPI에 의해 사용된 것이 아니지만, 편집기로 하여금 더 나은 지원과 에러 탐지를 지원할 것입니다.
 
 ## Pydantic없이
 
-만약 Pydantic 모델을 사용하고 싶지 않다면, **Body** 매개변수를 사용할 수도 있습니다. [Body - 다중 매개변수: 본문에 있는 유일한 값](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank} 문서를 확인하세요.
+만약 Pydantic 모델을 사용하고 싶지 않다면, **Body** 매개변수를 사용할 수도 있습니다. [Body - 다중 매개변수: 본문에 있는 유일한 값](body-multiple-params.md#_2){.internal-link target=_blank} 문서를 확인하세요.
index c56dddae3a010fb5592cd8fd376a98974ef9fb93..d06864ab8107e9dce52095072787b686c0dd929f 100644 (file)
 
 그 후 위의 값을 포함한 `dict` 자료형으로 반환할 뿐입니다.
 
-!!! 정보
+!!! info "정보"
     FastAPI는 0.95.0 버전부터 `Annotated`에 대한 지원을 (그리고 이를 사용하기 권장합니다) 추가했습니다.
 
     옛날 버전을 가지고 있는 경우, `Annotated`를 사용하려 하면 에러를 맞이하게 될 것입니다.
 
-    `Annotated`를 사용하기 전에 최소 0.95.1로 [FastAPI 버전 업그레이드](../../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank}를 확실하게 하세요.
+    `Annotated`를 사용하기 전에 최소 0.95.1로 [FastAPI 버전 업그레이드](../../deployment/versions.md#fastapi_2){.internal-link target=_blank}를 확실하게 하세요.
 
 ### `Depends` 불러오기
 
index e3b42bce73bbfc4eb60c160e4f2cd9c5e4222169..bdec3a377673277fc5b0f6ed71825ed5c9a4ae2c 100644 (file)
@@ -310,7 +310,7 @@ URL "`/`"에 대한 `GET` 작동을 사용하는 요청을 받을 때마다 **Fa
 ```
 
 !!! note "참고"
-    차이점을 모르겠다면 [Async: *"In a hurry?"*](../async.md#in-a-hurry){.internal-link target=_blank}을 확인하세요.
+    차이점을 모르겠다면 [Async: *"바쁘신 경우"*](../async.md#_1){.internal-link target=_blank}을 확인하세요.
 
 ### 5 단계: 콘텐츠 반환
 
index 8c7f9167b00694d9faeaaddc76d1370a75ac9b1e..43a6c1a36fdec27fa0d022880d94ca1f28c8b668 100644 (file)
@@ -195,4 +195,4 @@ http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
 * `limit`, 선택적인 `int`.
 
 !!! tip "팁"
-    [경로 매개변수](path-params.md#predefined-values){.internal-link target=_blank}와 마찬가지로 `Enum`을 사용할 수 있습니다.
+    [경로 매개변수](path-params.md#_8){.internal-link target=_blank}와 마찬가지로 `Enum`을 사용할 수 있습니다.
index 5bc2cee7a0dee93a026278ff1697d5ac2003b3c7..f4b6f94717f2efd3fd5cc34cf34eca25bd89ec5a 100644 (file)
@@ -86,12 +86,12 @@ Pydantic 모델인 `User`로 `current_user`의 타입을 선언하는 것을 알
 
 이것은 모든 완료 및 타입 검사를 통해 함수 내부에서 우리를 도울 것입니다.
 
-!!! 
+!!! tip "팁"
     요청 본문도 Pydantic 모델로 선언된다는 것을 기억할 것입니다.
 
     여기서 **FastAPI**는 `Depends`를 사용하고 있기 때문에 혼동되지 않습니다.
 
-!!! 확인
+!!! check "확인"
     이 의존성 시스템이 설계된 방식은 모두 `User` 모델을 반환하는 다양한 의존성(다른 "의존적인")을 가질 수 있도록 합니다.
 
     해당 타입의 데이터를 반환할 수 있는 의존성이 하나만 있는 것으로 제한되지 않습니다.
index a6435977c9cb267d5b746158c292712fb3fae70a..7c201379950f5481830712cb781cd75d37f94094 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Cechy
 
 ## Cechy FastAPI
index 54c172664f6ae5f0a712ef9b8ad349f9a01f6b55..fdc3b0bf936dccccbc2b7215e5f3f7de38345f27 100644 (file)
@@ -78,7 +78,7 @@ Możesz spróbować pomóc innym, odpowiadając w:
 
 W wielu przypadkach możesz już znać odpowiedź na te pytania. 🤓
 
-Jeśli pomożesz wielu ludziom, możesz zostać oficjalnym [Ekspertem FastAPI](fastapi-people.md#experts){.internal-link target=_blank}. 🎉
+Jeśli pomożesz wielu ludziom, możesz zostać oficjalnym [Ekspertem FastAPI](fastapi-people.md#fastapi-experts){.internal-link target=_blank}. 🎉
 
 Pamiętaj tylko o najważniejszym: bądź życzliwy. Ludzie przychodzą sfrustrowani i w wielu przypadkach nie zadają pytań w najlepszy sposób, ale mimo to postaraj się być dla nich jak najbardziej życzliwy. 🤗
 
@@ -215,8 +215,8 @@ Jest wiele pracy do zrobienia, a w większości przypadków **TY** możesz to zr
 
 Główne zadania, które możesz wykonać teraz to:
 
-* [Pomóc innym z pytaniami na GitHubie](#help-others-with-questions-in-github){.internal-link target=_blank} (zobacz sekcję powyżej).
-* [Oceniać Pull Requesty](#review-pull-requests){.internal-link target=_blank} (zobacz sekcję powyżej).
+* [Pomóc innym z pytaniami na GitHubie](#pomagaj-innym-odpowiadajac-na-ich-pytania-na-githubie){.internal-link target=_blank} (zobacz sekcję powyżej).
+* [Oceniać Pull Requesty](#przegladaj-pull-requesty){.internal-link target=_blank} (zobacz sekcję powyżej).
 
 Te dwie czynności **zajmują najwięcej czasu**. To główna praca związana z utrzymaniem FastAPI.
 
@@ -226,8 +226,8 @@ Jeśli możesz mi w tym pomóc, **pomożesz mi utrzymać FastAPI** i zapewnisz 
 
 Dołącz do 👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">serwera czatu na Discordzie</a> 👥 i spędzaj czas z innymi w społeczności FastAPI.
 
-!!! wskazówka
-    Jeśli masz pytania, zadaj je w <a href="https://github.com/tiangolo/fastapi/discussions/new?category=questions" class="external-link" target="_blank">Dyskusjach na GitHubie</a>, jest dużo większa szansa, że otrzymasz pomoc od [Ekspertów FastAPI](fastapi-people.md#experts){.internal-link target=_blank}.
+!!! tip "Wskazówka"
+    Jeśli masz pytania, zadaj je w <a href="https://github.com/tiangolo/fastapi/discussions/new?category=questions" class="external-link" target="_blank">Dyskusjach na GitHubie</a>, jest dużo większa szansa, że otrzymasz pomoc od [Ekspertów FastAPI](fastapi-people.md#fastapi-experts){.internal-link target=_blank}.
 
     Używaj czatu tylko do innych ogólnych rozmów.
 
@@ -237,7 +237,7 @@ Miej na uwadze, że ponieważ czaty pozwalają na bardziej "swobodną rozmowę",
 
 Na GitHubie szablon poprowadzi Cię do napisania odpowiedniego pytania, dzięki czemu łatwiej uzyskasz dobrą odpowiedź, a nawet rozwiążesz problem samodzielnie, zanim zapytasz. Ponadto na GitHubie mogę się upewnić, że zawsze odpowiadam na wszystko, nawet jeśli zajmuje to trochę czasu. Osobiście nie mogę tego zrobić z systemami czatu. 😅
 
-Rozmów w systemach czatu nie można tak łatwo przeszukiwać, jak na GitHubie, więc pytania i odpowiedzi mogą zaginąć w rozmowie. A tylko te na GitHubie liczą się do zostania [Ekspertem FastAPI](fastapi-people.md#experts){.internal-link target=_blank}, więc najprawdopodobniej otrzymasz więcej uwagi na GitHubie.
+Rozmów w systemach czatu nie można tak łatwo przeszukiwać, jak na GitHubie, więc pytania i odpowiedzi mogą zaginąć w rozmowie. A tylko te na GitHubie liczą się do zostania [Ekspertem FastAPI](fastapi-people.md#fastapi-experts){.internal-link target=_blank}, więc najprawdopodobniej otrzymasz więcej uwagi na GitHubie.
 
 Z drugiej strony w systemach czatu są tysiące użytkowników, więc jest duża szansa, że znajdziesz tam kogoś do rozmowy, prawie w każdej chwili. 😄
 
index ab33bfb9c80b34d48e4e92b216638c4fc488f88c..b168b9e5e793db3b412d330ddf46ed26ff7cd2b3 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index 9406d703d59cb1d4322b83781c470db8d77226ad..ce71f8b83d95ef1ad0652d0229cc2f1a1c7985c5 100644 (file)
@@ -311,7 +311,7 @@ Możesz również zdefiniować to jako normalną funkcję zamiast `async def`:
 ```
 
 !!! note
-    Jeśli nie znasz różnicy, sprawdź [Async: *"In a hurry?"*](/async/#in-a-hurry){.internal-link target=_blank}.
+    Jeśli nie znasz różnicy, sprawdź [Async: *"In a hurry?"*](../async.md#in-a-hurry){.internal-link target=_blank}.
 
 ### Krok 5: zwróć zawartość
 
index 7f6cb6f5d498ed9c5b9e27013031351a6ce97fa7..12aa93f298ac17564991bb0a36f5ff7a165f2f7b 100644 (file)
@@ -160,4 +160,4 @@ Por baixo, na especificação técnica ASGI, essa é a parte do <a href="https:/
 
 ## Sub Aplicações
 
-🚨 Tenha em mente que esses eventos de lifespan (de inicialização e desligamento) irão somente ser executados para a aplicação principal, não para [Sub Aplicações - Montagem](./sub-applications.md){.internal-link target=_blank}.
+🚨 Tenha em mente que esses eventos de lifespan (de inicialização e desligamento) irão somente ser executados para a aplicação principal, não para [Sub Aplicações - Montagem](sub-applications.md){.internal-link target=_blank}.
index fe236338609756a026570470c4e8cbf511f0967a..1ec8f07c695df67929c61b04fa8c4bd6559dceb4 100644 (file)
@@ -261,7 +261,7 @@ Mas você também pode explorar os benefícios do paralelismo e multiprocessamen
 
 Isso, mais o simples fato que Python é a principal linguagem para **Data Science**, Machine Learning e especialmente Deep Learning, faz do FastAPI uma ótima escolha para APIs web e aplicações com Data Science / Machine Learning (entre muitas outras).
 
-Para ver como alcançar esse paralelismo em produção veja a seção sobre [Deployment](deployment.md){.internal-link target=_blank}.
+Para ver como alcançar esse paralelismo em produção veja a seção sobre [Deployment](deployment/index.md){.internal-link target=_blank}.
 
 ## `async` e `await`
 
index 42c31db29ac57699bbd33998acc4fa39aaf0d23e..9ab8d38f0cfa020fd0eb033e62d6bd6d0b030347 100644 (file)
@@ -4,8 +4,8 @@ Ao fazer o deploy de aplicações FastAPI uma abordagem comum é construir uma *
 
 Usando contêineres Linux você tem diversas vantagens incluindo **segurança**, **replicabilidade**, **simplicidade**, entre outras.
 
-!!! Dica
-    Está com pressa e já sabe dessas coisas? Pode ir direto para [`Dockerfile` abaixo 👇](#build-a-docker-image-for-fastapi).
+!!! tip "Dica"
+    Está com pressa e já sabe dessas coisas? Pode ir direto para [`Dockerfile` abaixo 👇](#construindo-uma-imagem-docker-para-fastapi).
 
 
 <details>
@@ -109,7 +109,7 @@ Isso pode depender principalmente da ferramenta que você usa para **instalar**
 
 O caminho mais comum de fazer isso é ter um arquivo `requirements.txt` com os nomes dos pacotes e suas versões, um por linha.
 
-Você, naturalmente, usaria as mesmas ideias que você leu em [Sobre Versões do FastAPI](./versions.md){.internal-link target=_blank} para definir os intervalos de versões.
+Você, naturalmente, usaria as mesmas ideias que você leu em [Sobre Versões do FastAPI](versions.md){.internal-link target=_blank} para definir os intervalos de versões.
 
 Por exemplo, seu `requirements.txt` poderia parecer com:
 
@@ -374,7 +374,7 @@ Então ajuste o comando Uvicorn para usar o novo módulo `main` em vez de `app.m
 
 ## Conceitos de Implantação
 
-Vamos falar novamente sobre alguns dos mesmos [Conceitos de Implantação](./concepts.md){.internal-link target=_blank} em termos de contêineres.
+Vamos falar novamente sobre alguns dos mesmos [Conceitos de Implantação](concepts.md){.internal-link target=_blank} em termos de contêineres.
 
 Contêineres são principalmente uma ferramenta para simplificar o processo de **construção e implantação** de um aplicativo, mas eles não impõem uma abordagem particular para lidar com esses **conceitos de implantação** e existem várias estratégias possíveis.
 
@@ -515,14 +515,14 @@ Se você tiver uma configuração simples, com um **único contêiner** que ent
 
 ## Imagem Oficial do Docker com Gunicorn - Uvicorn
 
-Há uma imagem oficial do Docker que inclui o Gunicorn executando com trabalhadores Uvicorn, conforme detalhado em um capítulo anterior: [Server Workers - Gunicorn com Uvicorn](./server-workers.md){.internal-link target=_blank}.
+Há uma imagem oficial do Docker que inclui o Gunicorn executando com trabalhadores Uvicorn, conforme detalhado em um capítulo anterior: [Server Workers - Gunicorn com Uvicorn](server-workers.md){.internal-link target=_blank}.
 
-Essa imagem seria útil principalmente nas situações descritas acima em: [Contêineres com Múltiplos Processos e Casos Especiais](#contêineres-com-múltiplos-processos-e-casos-Especiais).
+Essa imagem seria útil principalmente nas situações descritas acima em: [Contêineres com Múltiplos Processos e Casos Especiais](#conteineres-com-multiplos-processos-e-casos-especiais).
 
 * <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
 
 !!! warning
-    Existe uma grande chance de que você **não** precise dessa imagem base ou de qualquer outra semelhante, e seria melhor construir a imagem do zero, como [descrito acima em: Construa uma Imagem Docker para o FastAPI](#construa-uma-imagem-docker-para-o-fastapi).
+    Existe uma grande chance de que você **não** precise dessa imagem base ou de qualquer outra semelhante, e seria melhor construir a imagem do zero, como [descrito acima em: Construa uma Imagem Docker para o FastAPI](#construindo-uma-imagem-docker-para-fastapi).
 
 Essa imagem tem um mecanismo de **auto-ajuste** incluído para definir o **número de processos trabalhadores** com base nos núcleos de CPU disponíveis.
 
@@ -579,7 +579,7 @@ COPY ./app /app/app
 
 Você provavelmente **não** deve usar essa imagem base oficial (ou qualquer outra semelhante) se estiver usando **Kubernetes** (ou outros) e já estiver definindo **replicação** no nível do cluster, com vários **contêineres**. Nesses casos, é melhor **construir uma imagem do zero** conforme descrito acima: [Construindo uma Imagem Docker para FastAPI](#construindo-uma-imagem-docker-para-fastapi).
 
-Essa imagem seria útil principalmente nos casos especiais descritos acima em [Contêineres com Múltiplos Processos e Casos Especiais](#contêineres-com-múltiplos-processos-e-casos-Especiais). Por exemplo, se sua aplicação for **simples o suficiente** para que a configuração padrão de número de processos com base na CPU funcione bem, você não quer se preocupar com a configuração manual da replicação no nível do cluster e não está executando mais de um contêiner com seu aplicativo. Ou se você estiver implantando com **Docker Compose**, executando em um único servidor, etc.
+Essa imagem seria útil principalmente nos casos especiais descritos acima em [Contêineres com Múltiplos Processos e Casos Especiais](#conteineres-com-multiplos-processos-e-casos-especiais). Por exemplo, se sua aplicação for **simples o suficiente** para que a configuração padrão de número de processos com base na CPU funcione bem, você não quer se preocupar com a configuração manual da replicação no nível do cluster e não está executando mais de um contêiner com seu aplicativo. Ou se você estiver implantando com **Docker Compose**, executando em um único servidor, etc.
 
 ## Deploy da Imagem do Contêiner
 
index 20061bfd938baeb6725f6253637785d6aa12d17c..93c3479f2595471b68fd159478f7745a99b14cd7 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Pessoas do FastAPI
 
 FastAPI possue uma comunidade incrível que recebe pessoas de todos os níveis.
@@ -18,7 +23,7 @@ Este sou eu:
 </div>
 {% endif %}
 
-Eu sou o criador e mantenedor do **FastAPI**. Você pode ler mais sobre isso em [Help FastAPI - Get Help - Connect with the author](help-fastapi.md#connect-with-the-author){.internal-link target=_blank}.
+Eu sou o criador e mantenedor do **FastAPI**. Você pode ler mais sobre isso em [Help FastAPI - Get Help - Connect with the author](help-fastapi.md#conect-se-com-o-autor){.internal-link target=_blank}.
 
 ...Mas aqui eu quero mostrar a você a comunidade.
 
@@ -28,15 +33,15 @@ Eu sou o criador e mantenedor do **FastAPI**. Você pode ler mais sobre isso em
 
 Estas são as pessoas que:
 
-* [Help others with issues (questions) in GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}.
-* [Create Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}.
-* Revisar Pull Requests, [especially important for translations](contributing.md#translations){.internal-link target=_blank}.
+* [Help others with issues (questions) in GitHub](help-fastapi.md#responda-perguntas-no-github){.internal-link target=_blank}.
+* [Create Pull Requests](help-fastapi.md#crie-um-pull-request){.internal-link target=_blank}.
+* Revisar Pull Requests, [especially important for translations](contributing.md#traducoes){.internal-link target=_blank}.
 
 Uma salva de palmas para eles. 👏 🙇
 
 ## Usuários mais ativos do ultimo mês
 
-Estes são os usuários que estão [helping others the most with issues (questions) in GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} durante o ultimo mês. ☕
+Estes são os usuários que estão [helping others the most with issues (questions) in GitHub](help-fastapi.md#responda-perguntas-no-github){.internal-link target=_blank} durante o ultimo mês. ☕
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -53,7 +58,7 @@ Estes são os usuários que estão [helping others the most with issues (questio
 Aqui está os **Especialistas do FastAPI**. 🤓
 
 
-Estes são os usuários que [helped others the most with issues (questions) in GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} em *todo o tempo*.
+Estes são os usuários que [helped others the most with issues (questions) in GitHub](help-fastapi.md#responda-perguntas-no-github){.internal-link target=_blank} em *todo o tempo*.
 
 Eles provaram ser especialistas ajudando muitos outros. ✨
 
@@ -71,7 +76,7 @@ Eles provaram ser especialistas ajudando muitos outros. ✨
 
 Aqui está os **Top Contribuidores**. 👷
 
-Esses usuários têm [created the most Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank} que tem sido *mergeado*.
+Esses usuários têm [created the most Pull Requests](help-fastapi.md#crie-um-pull-request){.internal-link target=_blank} que tem sido *mergeado*.
 
 Eles contribuíram com o código-fonte, documentação, traduções, etc. 📦
 
@@ -93,7 +98,7 @@ Esses usuários são os **Top Revisores**. 🕵️
 
 ### Revisões para Traduções
 
-Eu só falo algumas línguas (e não muito bem 😅). Então, os revisores são aqueles que têm o [**poder de aprovar traduções**](contributing.md#translations){.internal-link target=_blank} da documentação. Sem eles, não haveria documentação em vários outros idiomas.
+Eu só falo algumas línguas (e não muito bem 😅). Então, os revisores são aqueles que têm o [**poder de aprovar traduções**](contributing.md#traducoes){.internal-link target=_blank} da documentação. Sem eles, não haveria documentação em vários outros idiomas.
 
 ---
 
index 64efeeae1baa7baeca98f4a1df2b75310d1e6f41..c514fc8e31ec6d8322f53854582d880d6e3c4c75 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Recursos
 
 ## Recursos do FastAPI
index 06a4db1e09477004efd5501ac8b6498649b17921..babb404f95bbdfa2e37bb52f2939ccf162d62563 100644 (file)
@@ -72,7 +72,7 @@ Adoro ouvir sobre como o **FastAPI** é usado, o que você gosta nele, em qual p
 
 Você pode acompanhar as <a href="https://github.com/tiangolo/fastapi/issues" class="external-link" target="_blank">perguntas existentes</a> e tentar ajudar outros,            . 🤓
 
-Ajudando a responder as questões de varias pessoas, você pode se tornar um [Expert em FastAPI](fastapi-people.md#experts){.internal-link target=_blank} oficial. 🎉
+Ajudando a responder as questões de varias pessoas, você pode se tornar um [Expert em FastAPI](fastapi-people.md#especialistas){.internal-link target=_blank} oficial. 🎉
 
 ## Acompanhe o repositório do GitHub
 
@@ -98,7 +98,7 @@ Assim podendo tentar ajudar a resolver essas questões.
 * Para corrigir um erro de digitação que você encontrou na documentação.
 * Para compartilhar um artigo, video, ou podcast criados por você sobre o FastAPI <a href="https://github.com/tiangolo/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">editando este arquivo</a>.
     * Não se esqueça de adicionar o link no começo da seção correspondente.
-* Para ajudar [traduzir a documentação](contributing.md#translations){.internal-link target=_blank} para sua lingua.
+* Para ajudar [traduzir a documentação](contributing.md#traducoes){.internal-link target=_blank} para sua lingua.
     * Também é possivel revisar as traduções já existentes.
 * Para propor novas seções na documentação.
 * Para corrigir um bug/questão.
@@ -109,8 +109,8 @@ Assim podendo tentar ajudar a resolver essas questões.
 Entre no 👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">server de conversa do Discord</a> 👥 e conheça novas pessoas da comunidade
 do FastAPI.
 
-!!! dica
-    Para perguntas, pergunte nas <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="external-link" target="_blank">questões do GitHub</a>, lá tem um chance maior de você ser ajudado sobre o FastAPI [FastAPI Experts](fastapi-people.md#experts){.internal-link target=_blank}.
+!!! tip "Dica"
+    Para perguntas, pergunte nas <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="external-link" target="_blank">questões do GitHub</a>, lá tem um chance maior de você ser ajudado sobre o FastAPI [FastAPI Experts](fastapi-people.md#especialistas){.internal-link target=_blank}.
 
     Use o chat apenas para outro tipo de assunto.
 
@@ -120,7 +120,7 @@ Tenha em mente que os chats permitem uma "conversa mais livre", dessa forma é m
 
 Nas questões do GitHub o template irá te guiar para que você faça a sua pergunta de um jeito mais correto, fazendo com que você receba respostas mais completas, e até mesmo que você mesmo resolva o problema antes de perguntar. E no GitHub eu garanto que sempre irei responder todas as perguntas, mesmo que leve um tempo. Eu pessoalmente não consigo fazer isso via chat. 😅
 
-Conversas no chat não são tão fáceis de serem encontrados quanto no GitHub, então questões e respostas podem se perder dentro da conversa. E apenas as que estão nas questões do GitHub contam para você se tornar um [Expert em FastAPI](fastapi-people.md#experts){.internal-link target=_blank}, então você receberá mais atenção nas questões do GitHub.
+Conversas no chat não são tão fáceis de serem encontrados quanto no GitHub, então questões e respostas podem se perder dentro da conversa. E apenas as que estão nas questões do GitHub contam para você se tornar um [Expert em FastAPI](fastapi-people.md#especialistas){.internal-link target=_blank}, então você receberá mais atenção nas questões do GitHub.
 
 Por outro lado, existem milhares de usuários no chat, então tem uma grande chance de você encontrar alguém para trocar uma idéia por lá em qualquer horário. 😄
 
index 05786a0aa112ba05639330cb763d11d2fab5fd72..1a29a9bea6a2e9521f382f2a782bb30d52ecd274 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index 0eaa9664c07994eb69e185368ea227b7fe53d518..7d0435a6ba2bca161501f0519fde89c21150da39 100644 (file)
@@ -20,7 +20,7 @@ E você também pode declarar parâmetros de corpo como opcionais, definindo o v
     {!> ../../../docs_src/body_multiple_params/tutorial001.py!}
     ```
 
-!!! nota
+!!! note "Nota"
     Repare que, neste caso, o `item` que seria capturado a partir do corpo é opcional. Visto que ele possui `None` como valor padrão.
 
 ## Múltiplos parâmetros de corpo
@@ -69,7 +69,7 @@ Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo
 }
 ```
 
-!!! nota
+!!! note "Nota"
     Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora é esperado que ele esteja dentro do corpo com uma chave `item`.
 
 
index e039b09b2d8d7990c2280717931fea8f54e24f7a..c9d0b8bb613e17d4e75ee4514aaf0851525e24c8 100644 (file)
@@ -165,7 +165,7 @@ Isso vai esperar(converter, validar, documentar, etc) um corpo JSON tal qual:
 }
 ```
 
-!!! Informação
+!!! info "informação"
     Note como o campo `images` agora tem uma lista de objetos de image.
 
 ## Modelos profundamente aninhados
@@ -176,7 +176,7 @@ Você pode definir modelos profundamente aninhados de forma arbitrária:
 {!../../../docs_src/body_nested_models/tutorial007.py!}
 ```
 
-!!! Informação
+!!! info "informação"
     Note como `Offer` tem uma lista de `Item`s, que por sua vez possui opcionalmente uma lista `Image`s
 
 ## Corpos de listas puras
@@ -226,7 +226,7 @@ Neste caso, você aceitaria qualquer `dict`, desde que tenha chaves` int` com va
 {!../../../docs_src/body_nested_models/tutorial009.py!}
 ```
 
-!!! Dica
+!!! tip "Dica"
     Leve em condideração que o JSON só suporta `str` como chaves.
 
     Mas o Pydantic tem conversão automática de dados.
index 5901b84148d01578e212f975e1ab157baf99394d..713bea2d19ff9620d045cb339f1a04ca0b08525f 100644 (file)
@@ -162,4 +162,4 @@ Os parâmetros da função serão reconhecidos conforme abaixo:
 
 ## Sem o Pydantic
 
-Se você não quer utilizar os modelos Pydantic, você também pode utilizar o parâmetro **Body**. Veja a documentação para [Body - Parâmetros múltiplos: Valores singulares no body](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank}.
+Se você não quer utilizar os modelos Pydantic, você também pode utilizar o parâmetro **Body**. Veja a documentação para [Body - Parâmetros múltiplos: Valores singulares no body](body-multiple-params.md#valores-singulares-no-corpo){.internal-link target=_blank}.
index b9bfbf63bfb3f96c4321c7a77922ba32ad6261be..7a8d2051558dd4f36cf05c621d6fc8fa8567b196 100644 (file)
@@ -38,5 +38,5 @@ O resultado de chamar a função é algo que pode ser codificado com o padrão d
 
 A função não retorna um grande `str` contendo os dados no formato JSON (como uma string). Mas sim, retorna uma estrutura de dados padrão do Python (por exemplo, um `dict`) com valores e subvalores compatíveis com JSON.
 
-!!! nota
+!!! note "Nota"
     `jsonable_encoder` é realmente usado pelo **FastAPI** internamente para converter dados. Mas também é útil em muitos outros cenários.
index 9fcdaf91f2d3272713a1e212ef855c64e7192480..619a68601022383f08bb0fc14ddd5c3b5414faec 100644 (file)
@@ -24,7 +24,7 @@ $ uvicorn main:app --reload
 
 </div>
 
-!!! nota
+!!! note "Nota"
     O comando `uvicorn main:app` se refere a:
 
     * `main`: o arquivo `main.py` (o "módulo" Python).
@@ -136,7 +136,7 @@ Você também pode usá-lo para gerar código automaticamente para clientes que
 
 `FastAPI` é uma classe Python que fornece todas as funcionalidades para sua API.
 
-!!! nota "Detalhes técnicos"
+!!! note "Detalhes técnicos"
     `FastAPI` é uma classe que herda diretamente de `Starlette`.
 
     Você pode usar todas as funcionalidades do <a href="https://www.starlette.io/" class="external-link" target="_blank">Starlette</a> com `FastAPI` também.
@@ -309,7 +309,7 @@ Você também pode defini-la como uma função normal em vez de `async def`:
 {!../../../docs_src/first_steps/tutorial003.py!}
 ```
 
-!!! nota
+!!! note "Nota"
     Se você não sabe a diferença, verifique o [Async: *"Com pressa?"*](../async.md#com-pressa){.internal-link target=_blank}.
 
 ### Passo 5: retorne o conteúdo
index 5fc0485a076d15b1c5019dcbde7550ea6d28e010..60fc26ae0a1ee6bd383a802d02ca59313d861bee 100644 (file)
@@ -52,7 +52,7 @@ $ pip install "fastapi[all]"
 
 ...isso também inclui o `uvicorn`, que você pode usar como o servidor que rodará seu código.
 
-!!! nota
+!!! note "Nota"
     Você também pode instalar parte por parte.
 
     Isso é provavelmente o que você faria quando você quisesse lançar sua aplicação em produção:
index be2b7f7a453090e9c7f1b9262abe51064e56fc2f..27aa9dfcf51b6fe3043ff98335d335b7127a69c9 100644 (file)
@@ -24,7 +24,7 @@ Você pode declarar o tipo de um parâmetro na função usando as anotações pa
 
 Nesse caso, `item_id` está sendo declarado como um `int`.
 
-!!! Check Verifique
+!!! check "Verifique"
        Isso vai dar à você suporte do seu editor dentro das funções, com verificações de erros, autocompletar, etc.
 
 ## Conversão de <abbr title="também conhecido como: serialização, parsing, marshalling">dados</abbr>
@@ -35,7 +35,7 @@ Se você rodar esse exemplo e abrir o seu navegador em <a href="http://127.0.0.1
 {"item_id":3}
 ```
 
-!!! Verifique
+!!! check "Verifique"
        Observe que o valor recebido pela função (e também retornado por ela) é `3`, como um Python `int`, não como uma string `"3"`.
 
        Então, com essa declaração de tipo, o **FastAPI** dá pra você um <abbr title="convertendo a string que veio do request HTTP em um dado Python">"parsing"</abbr> automático no request .
@@ -63,7 +63,7 @@ devido ao parâmetro da rota `item_id` ter um valor `"foo"`, que não é um `int
 
 O mesmo erro apareceria se você tivesse fornecido um `float` ao invés de um `int`, como em: <a href="http://127.0.0.1:8000/items/4.2" class="external-link" target="_blank">http://127.0.0.1:8000/items/4.2</a>
 
-!!! Verifique
+!!! check "Verifique"
        Então, com a mesma declaração de tipo do Python, o **FastAPI** dá pra você validação de dados.
 
        Observe que o erro também mostra claramente o ponto exato onde a validação não passou.
@@ -76,7 +76,7 @@ Quando você abrir o seu navegador em <a href="http://127.0.0.1:8000/docs" class
 
 <img src="/img/tutorial/path-params/image01.png">
 
-!!! check
+!!! check "Verifique"
        Novamente, apenas com a mesma declaração de tipo do Python, o **FastAPI** te dá de forma automática e interativa a documentação (integrada com o Swagger UI).
 
        Veja que o parâmetro de rota está declarado como sendo um inteiro (int).
@@ -131,10 +131,10 @@ Assim, crie atributos de classe com valores fixos, que serão os valores válido
 {!../../../docs_src/path_params/tutorial005.py!}
 ```
 
-!!! informação
+!!! info "informação"
     <a href="https://docs.python.org/3/library/enum.html" class="external-link" target="_blank">Enumerations (ou enums) estão disponíveis no Python</a> desde a versão 3.4.
 
-!!! dica
+!!! tip "Dica"
        Se você está se perguntando, "AlexNet", "ResNet", e "LeNet" são apenas nomes de <abbr title="técnicamente, modelos de arquitetura de Deep Learning">modelos</abbr> de Machine Learning (aprendizado de máquina).
 
 ### Declare um *parâmetro de rota*
@@ -171,7 +171,7 @@ Você pode ter o valor exato de enumerate (um `str` nesse caso) usando `model_na
 {!../../../docs_src/path_params/tutorial005.py!}
 ```
 
-!!! conselho
+!!! tip "Dica"
        Você também poderia acessar o valor `"lenet"` com `ModelName.lenet.value`
 
 #### Retorne *membros de enumeration*
@@ -225,7 +225,7 @@ Então, você poderia usar ele com:
 {!../../../docs_src/path_params/tutorial004.py!}
 ```
 
-!!! dica
+!!! tip "Dica"
        Você poderia precisar que o parâmetro contivesse `/home/johndoe/myfile.txt`, com uma barra no inicio (`/`).
 
        Neste caso, a URL deveria ser: `/files//home/johndoe/myfile.txt`, com barra dupla (`//`) entre `files` e `home`.
index 08bb99dbc80c94221c01813dfae58f5cd107ab62..ff6f38fe56cba0b597b200abceb99e6f5a0cd26d 100644 (file)
@@ -222,4 +222,4 @@ Nesse caso, existem 3 parâmetros de consulta:
 * `limit`, um `int` opcional.
 
 !!! tip "Dica"
-    Você também poderia usar `Enum` da mesma forma que com [Path Parameters](path-params.md#predefined-values){.internal-link target=_blank}.
+    Você também poderia usar `Enum` da mesma forma que com [Path Parameters](path-params.md#valores-predefinidos){.internal-link target=_blank}.
index 395621d3b6f85e59d8ac1760e418c00423f721c1..4331a0bc380b09e35297c5a91de40edbe683061d 100644 (file)
@@ -25,7 +25,7 @@ Copie o exemplo em um arquivo `main.py`:
 
 ## Execute-o
 
-!!! informação
+!!! info "informação"
        Primeiro, instale <a href="https://github.com/Kludex/python-multipart" class="external-link" target="_blank">`python-multipart`</a>.
 
        Ex: `pip install python-multipart`.
@@ -52,7 +52,7 @@ Você verá algo deste tipo:
 
 <img src="/img/tutorial/security/image01.png">
 
-!!! marque o "botão de Autorizar!"
+!!! check "Botão de Autorizar!"
        Você já tem um novo "botão de autorizar!".
 
        E seu *path operation* tem um pequeno cadeado no canto superior direito que você pode clicar.
@@ -61,7 +61,7 @@ E se você clicar, você terá um pequeno formulário de autorização para digi
 
 <img src="/img/tutorial/security/image02.png">
 
-!!! nota
+!!! note "Nota"
        Não importa o que você digita no formulário, não vai funcionar ainda. Mas nós vamos chegar lá.
 
 Claro que este não é o frontend para os usuários finais, mas é uma ótima ferramenta automática para documentar interativamente toda sua API.
@@ -104,7 +104,7 @@ Então, vamos rever de um ponto de vista simplificado:
 
 Neste exemplo, nós vamos usar o **OAuth2** com o fluxo de **Senha**, usando um token **Bearer**. Fazemos isso usando a classe `OAuth2PasswordBearer`.
 
-!!! informação
+!!! info "informação"
        Um token "bearer" não é a única opção.
 
        Mas é a melhor no nosso caso.
@@ -119,7 +119,7 @@ Quando nós criamos uma instância da classe `OAuth2PasswordBearer`, nós passam
 {!../../../docs_src/security/tutorial001.py!}
 ```
 
-!!! dica
+!!! tip "Dica"
        Esse `tokenUrl="token"` se refere a uma URL relativa que nós não criamos ainda. Como é uma URL relativa, é equivalente a `./token`.
 
        Porque estamos usando uma URL relativa, se sua API estava localizada em `https://example.com/`, então irá referir-se à `https://example.com/token`. Mas se sua API estava localizada em `https://example.com/api/v1/`, então irá referir-se à `https://example.com/api/v1/token`.
@@ -130,7 +130,7 @@ Esse parâmetro não cria um endpoint / *path operation*, mas declara que a URL
 
 Em breve também criaremos o atual path operation.
 
-!!! informação
+!!! info "informação"
        Se você é um "Pythonista" muito rigoroso, você pode não gostar do estilo do nome do parâmetro `tokenUrl` em vez de `token_url`.
 
        Isso ocorre porque está utilizando o mesmo nome que está nas especificações do OpenAPI. Então, se você precisa investigar mais sobre qualquer um desses esquemas de segurança, você pode simplesmente copiar e colar para encontrar mais informações sobre isso.
@@ -157,7 +157,7 @@ Esse dependência vai fornecer uma `str` que é atribuído ao parâmetro `token
 
 A **FastAPI** saberá que pode usar essa dependência para definir um "esquema de segurança" no esquema da OpenAPI (e na documentação da API automática).
 
-!!! informação "Detalhes técnicos"
+!!! info "Detalhes técnicos"
        **FastAPI** saberá que pode usar a classe `OAuth2PasswordBearer` (declarada na dependência) para definir o esquema de segurança na OpenAPI porque herda de `fastapi.security.oauth2.OAuth2`, que por sua vez herda de `fastapi.security.base.Securitybase`.
 
         Todos os utilitários de segurança que se integram com OpenAPI (e na documentação da API automática) herdam de `SecurityBase`, é assim que **FastAPI** pode saber como integrá-los no OpenAPI.
index 4d3ce2adfe3493d2af4cecfbe234d3220f53c1af..20dbb108b4b2ebe7e8144070366ab71d484c968a 100644 (file)
@@ -468,7 +468,7 @@ Starlette (и **FastAPI**) основаны на <a href="https://anyio.readthed
 <!--Уточнить: Не использовать async def, если код приводит к блокировке IO?-->
 
 <!--http://new.gramota.ru/spravka/punctum?layout=item&id=58_285-->
-Но в любом случае велика вероятность, что **FastAPI** [окажется быстрее](index.md#performance){.internal-link target=_blank}
+Но в любом случае велика вероятность, что **FastAPI** [окажется быстрее](index.md#_11){.internal-link target=_blank}
 другого фреймворка (или хотя бы на уровне с ним).
 
 ### Зависимости
@@ -502,4 +502,4 @@ Starlette (и **FastAPI**) основаны на <a href="https://anyio.readthed
 <!--http://new.gramota.ru/spravka/buro/search-answer?s=299749-->
 Ещё раз повторим, что все эти технические подробности полезны, только если вы специально их искали.
 
-В противном случае просто ознакомьтесь с основными принципами в разделе выше: <a href="#in-a-hurry">Нет времени?</a>.
+В противном случае просто ознакомьтесь с основными принципами в разделе выше: <a href="#_1">Нет времени?</a>.
index 771f4bf68601e265a06f83295eb54351e91a4a15..26db356c105eb4e9b68aea4ea54b5690fd2435a2 100644 (file)
@@ -25,7 +25,7 @@
 
 ## Использование более безопасного протокола HTTPS
 
-В [предыдущей главе об HTTPS](./https.md){.internal-link target=_blank} мы рассмотрели, как HTTPS обеспечивает шифрование для вашего API.
+В [предыдущей главе об HTTPS](https.md){.internal-link target=_blank} мы рассмотрели, как HTTPS обеспечивает шифрование для вашего API.
 
 Также мы заметили, что обычно для работы с HTTPS вашему приложению нужен **дополнительный** компонент - **прокси-сервер завершения работы TLS**.
 
 
 ### Процессы и порты́
 
-Помните ли Вы, как на странице [Об HTTPS](./https.md){.internal-link target=_blank} мы обсуждали, что на сервере только один процесс может слушать одну комбинацию IP-адреса и порта?
+Помните ли Вы, как на странице [Об HTTPS](https.md){.internal-link target=_blank} мы обсуждали, что на сервере только один процесс может слушать одну комбинацию IP-адреса и порта?
 
 С тех пор ничего не изменилось.
 
 !!! tip "Заметка"
     Если вы не знаете, что такое **контейнеры**, Docker или Kubernetes, не переживайте.
 
-    Я поведаю Вам о контейнерах, образах, Docker, Kubernetes и т.п. в главе: [FastAPI внутри контейнеров - Docker](./docker.md){.internal-link target=_blank}.
+    Я поведаю Вам о контейнерах, образах, Docker, Kubernetes и т.п. в главе: [FastAPI внутри контейнеров - Docker](docker.md){.internal-link target=_blank}.
 
 ## Шаги, предшествующие запуску
 
     * При этом Вам всё ещё нужно найти способ - как запускать/перезапускать *такой* bash-скрипт, обнаруживать ошибки и т.п.
 
 !!! tip "Заметка"
-    Я приведу Вам больше конкретных примеров работы с контейнерами в главе: [FastAPI внутри контейнеров - Docker](./docker.md){.internal-link target=_blank}.
+    Я приведу Вам больше конкретных примеров работы с контейнерами в главе: [FastAPI внутри контейнеров - Docker](docker.md){.internal-link target=_blank}.
 
 ## Утилизация ресурсов
 
index 78d3ec1b4d362baea5d034d32fc347923cc490d4..ce4972c4f368b5e9f150030a31836c595521ce24 100644 (file)
@@ -110,7 +110,7 @@ Docker является одним оз основных инструменто
 
 Чаще всего это простой файл `requirements.txt` с построчным перечислением библиотек и их версий.
 
-При этом Вы, для выбора версий, будете использовать те же идеи, что упомянуты на странице [О версиях FastAPI](./versions.md){.internal-link target=_blank}.
+При этом Вы, для выбора версий, будете использовать те же идеи, что упомянуты на странице [О версиях FastAPI](versions.md){.internal-link target=_blank}.
 
 Ваш файл `requirements.txt` может выглядеть как-то так:
 
@@ -374,7 +374,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## Концепции развёртывания
 
-Давайте вспомним о [Концепциях развёртывания](./concepts.md){.internal-link target=_blank} и применим их к контейнерам.
+Давайте вспомним о [Концепциях развёртывания](concepts.md){.internal-link target=_blank} и применим их к контейнерам.
 
 Контейнеры - это, в основном, инструмент упрощающий **сборку и развёртывание** приложения и они не обязывают к применению какой-то определённой **концепции развёртывания**, а значит мы можем выбирать нужную стратегию.
 
@@ -447,7 +447,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 Использование менеджера процессов (Gunicorn или Uvicorn) внутри контейнера только добавляет **излишнее усложнение**, так как управление следует осуществлять системой оркестрации.
 
-### <a name="special-cases"></a>Множество процессов внутри контейнера для особых случаев</a>
+### Множество процессов внутри контейнера для особых случаев
 
 Безусловно, бывают **особые случаи**, когда может понадобиться внутри контейнера запускать **менеджер процессов Gunicorn**, управляющий несколькими **процессами Uvicorn**.
 
@@ -515,9 +515,9 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## Официальный Docker-образ с Gunicorn и Uvicorn
 
-Я подготовил для вас Docker-образ, в который включён Gunicorn управляющий процессами (воркерами) Uvicorn, в соответствии с концепциями рассмотренными в предыдущей главе: [Рабочие процессы сервера (воркеры) - Gunicorn совместно с Uvicorn](./server-workers.md){.internal-link target=_blank}.
+Я подготовил для вас Docker-образ, в который включён Gunicorn управляющий процессами (воркерами) Uvicorn, в соответствии с концепциями рассмотренными в предыдущей главе: [Рабочие процессы сервера (воркеры) - Gunicorn совместно с Uvicorn](server-workers.md){.internal-link target=_blank}.
 
-Этот образ может быть полезен для ситуаций описанных тут: [Множество процессов внутри контейнера для особых случаев](#special-cases).
+Этот образ может быть полезен для ситуаций описанных тут: [Множество процессов внутри контейнера для особых случаев](#_11).
 
 * <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
 
@@ -578,7 +578,7 @@ COPY ./app /app/app
 
 Если вы используете **Kubernetes** (или что-то вроде того), скорее всего вам **не нужно** использовать официальный Docker-образ (или другой похожий) в качестве основы, так как управление **количеством запущенных контейнеров** должно быть настроено на уровне кластера. В таком случае лучше **создать образ с нуля**, как описано в разделе Создать [Docker-образ для FastAPI](#docker-fastapi).
 
-Официальный образ может быть полезен в отдельных случаях, описанных выше в разделе [Множество процессов внутри контейнера для особых случаев](#special-cases). Например, если ваше приложение **достаточно простое**, не требует запуска в кластере и способно уместиться в один контейнер, то его настройки по умолчанию будут работать довольно хорошо. Или же вы развертываете его с помощью **Docker Compose**, работаете на одном сервере и т. д
+Официальный образ может быть полезен в отдельных случаях, описанных выше в разделе [Множество процессов внутри контейнера для особых случаев](#_11). Например, если ваше приложение **достаточно простое**, не требует запуска в кластере и способно уместиться в один контейнер, то его настройки по умолчанию будут работать довольно хорошо. Или же вы развертываете его с помощью **Docker Compose**, работаете на одном сервере и т. д
 
 ## Развёртывание образа контейнера
 
index 91b9038e9f3f26e8a55540d55762a93df469c115..f410e393685ba7331c9134a018c37a79f711a2b5 100644 (file)
@@ -42,7 +42,7 @@ fastapi>=0.45.0,<0.46.0
 
 FastAPI следует соглашению в том, что любые изменения "ПАТЧ"-версии предназначены для исправления багов и внесения обратно совместимых изменений.
 
-!!! Подсказка
+!!! tip "Подсказка"
     "ПАТЧ" - это последнее число. Например, в `0.2.3`, ПАТЧ-версия - это `3`.
 
 Итак, вы можете закрепить версию следующим образом:
@@ -53,7 +53,7 @@ fastapi>=0.45.0,<0.46.0
 
 Обратно несовместимые изменения и новые функции добавляются в "МИНОРНЫЕ" версии.
 
-!!! Подсказка
+!!! tip "Подсказка"
     "МИНОРНАЯ" версия - это число в середине. Например, в `0.2.3` МИНОРНАЯ версия - это `2`.
 
 ## Обновление версий FastAPI
index 0e42aab69033b3707324cd1be5f089e4267acd21..fa70d168e3e708537515a82bdc5e77aea2b86842 100644 (file)
@@ -1,3 +1,7 @@
+---
+hide:
+  - navigation
+---
 
 # Люди, поддерживающие FastAPI
 
@@ -19,7 +23,7 @@
 </div>
 {% endif %}
 
-Я создал и продолжаю поддерживать **FastAPI**. Узнать обо мне больше можно тут [Помочь FastAPI - Получить помощь - Связаться с автором](help-fastapi.md#connect-with-the-author){.internal-link target=_blank}.
+Я создал и продолжаю поддерживать **FastAPI**. Узнать обо мне больше можно тут [Помочь FastAPI - Получить помощь - Связаться с автором](help-fastapi.md#_2){.internal-link target=_blank}.
 
 ... но на этой странице я хочу показать вам наше сообщество.
 
 
 Это люди, которые:
 
-* [Помогают другим с их проблемами (вопросами) на GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}.
-* [Создают пул-реквесты](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}.
-* Делают ревью пул-реквестов, [что особенно важно для переводов на другие языки](contributing.md#translations){.internal-link target=_blank}.
+* [Помогают другим с их проблемами (вопросами) на GitHub](help-fastapi.md#github_1){.internal-link target=_blank}.
+* [Создают пул-реквесты](help-fastapi.md#-_1){.internal-link target=_blank}.
+* Делают ревью пул-реквестов, [что особенно важно для переводов на другие языки](contributing.md#_8){.internal-link target=_blank}.
 
 Поаплодируем им! 👏 🙇
 
 ## Самые активные участники за прошедший месяц
 
-Эти участники [оказали наибольшую помощь другим с решением их проблем (вопросов) на GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} в течение последнего месяца. ☕
+Эти участники [оказали наибольшую помощь другим с решением их проблем (вопросов) на GitHub](help-fastapi.md#github_1){.internal-link target=_blank} в течение последнего месяца. ☕
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -53,7 +57,7 @@
 
 Здесь представлены **Эксперты FastAPI**. 🤓
 
-Эти участники [оказали наибольшую помощь другим с решением их проблем (вопросов) на GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} за *всё время*.
+Эти участники [оказали наибольшую помощь другим с решением их проблем (вопросов) на GitHub](help-fastapi.md#github_1){.internal-link target=_blank} за *всё время*.
 
 Оказывая помощь многим другим, они подтвердили свой уровень знаний. ✨
 
@@ -71,7 +75,7 @@
 
 Здесь представлен **Рейтинг участников, внёсших вклад в код**. 👷
 
-Эти люди [сделали наибольшее количество пул-реквестов](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}, *включённых в основной код*.
+Эти люди [сделали наибольшее количество пул-реквестов](help-fastapi.md#-_1){.internal-link target=_blank}, *включённых в основной код*.
 
 Они сделали наибольший вклад в исходный код, документацию, переводы и т.п. 📦
 
@@ -94,7 +98,7 @@
 ### Проверки переводов на другие языки
 
 Я знаю не очень много языков (и не очень хорошо 😅).
-Итак, ревьюеры - это люди, которые могут [**подтвердить предложенный вами перевод** документации](contributing.md#translations){.internal-link target=_blank}. Без них не было бы документации на многих языках.
+Итак, ревьюеры - это люди, которые могут [**подтвердить предложенный вами перевод** документации](contributing.md#_8){.internal-link target=_blank}. Без них не было бы документации на многих языках.
 
 ---
 
index 110c7d31e128aa09eb85ea953d7d3fe86d75516d..59860e12b03f88adba6b2e3c2e866324ed8864cb 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Основные свойства
 
 ## Основные свойства FastAPI
@@ -66,7 +71,7 @@ second_user_data = {
 my_second_user: User = User(**second_user_data)
 ```
 
-!!! Информация
+!!! info "Информация"
     `**second_user_data` означает:
 
     Передать ключи и значения словаря `second_user_data`,  в качестве аргументов типа "ключ-значение", это эквивалентно: `User(id=4, name="Mary", joined="2018-11-30")` .
index 3ad3e6fd49adcb37dff3dd67b034a08c541d8672..d53f501f53b9974401d388dd4799598a65553dac 100644 (file)
@@ -73,7 +73,7 @@
 
 Вы можете посмотреть, какие <a href="https://github.com/tiangolo/fastapi/issues" class="external-link" target="_blank">проблемы</a> испытывают другие люди и попытаться помочь им. Чаще всего это вопросы, на которые, весьма вероятно, Вы уже знаете ответ. 🤓
 
-Если Вы будете много помогать людям с решением их проблем, Вы можете стать официальным [Экспертом FastAPI](fastapi-people.md#experts){.internal-link target=_blank}. 🎉
+Если Вы будете много помогать людям с решением их проблем, Вы можете стать официальным [Экспертом FastAPI](fastapi-people.md#_3){.internal-link target=_blank}. 🎉
 
 Только помните, самое важное при этом - доброта. Столкнувшись с проблемой, люди расстраиваются и часто задают вопросы не лучшим образом, но постарайтесь быть максимально доброжелательным. 🤗
 
 
 * Затем, используя **комментарий**, сообщите, что Вы сделали проверку, тогда я буду знать, что Вы действительно проверили код.
 
-!!! Информация
+!!! info "Информация"
     К сожалению, я не могу так просто доверять пул-реквестам, у которых уже есть несколько одобрений.
 
     Бывали случаи, что пул-реквесты имели 3, 5 или больше одобрений, вероятно из-за привлекательного описания, но когда я проверял эти пул-реквесты, они оказывались сломаны, содержали ошибки или вовсе не решали проблему, которую, как они утверждали, должны были решить. 😅
 * Исправить опечатку, которую Вы нашли в документации.
 * Поделиться статьёй, видео или подкастом о FastAPI, которые Вы создали или нашли  <a href="https://github.com/tiangolo/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">изменив этот файл</a>.
     * Убедитесь, что Вы добавили свою ссылку в начало соответствующего раздела.
-* Помочь с [переводом документации](contributing.md#translations){.internal-link target=_blank} на Ваш язык.
+* Помочь с [переводом документации](contributing.md#_8){.internal-link target=_blank} на Ваш язык.
     * Вы также можете проверять переводы сделанные другими.
 * Предложить новые разделы документации.
 * Исправить существующуе проблемы/баги.
 
 Основные задачи, которые Вы можете выполнить прямо сейчас:
 
-* [Помочь другим с их проблемами на GitHub](#help-others-with-issues-in-github){.internal-link target=_blank} (смотрите вышестоящую секцию).
-* [Проверить пул-реквесты](#review-pull-requests){.internal-link target=_blank} (смотрите вышестоящую секцию).
+* [Помочь другим с их проблемами на GitHub](#github_1){.internal-link target=_blank} (смотрите вышестоящую секцию).
+* [Проверить пул-реквесты](#-){.internal-link target=_blank} (смотрите вышестоящую секцию).
 
 Эти две задачи **отнимают больше всего времени**. Это основная работа по поддержке FastAPI.
 
 
 Подключайтесь к  👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank"> чату в Discord</a> 👥 и общайтесь с другими участниками сообщества FastAPI.
 
-!!! Подсказка
-    Вопросы по проблемам с фреймворком лучше задавать в <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="external-link" target="_blank">GitHub issues</a>, так больше шансов, что Вы получите помощь от [Экспертов FastAPI](fastapi-people.md#experts){.internal-link target=_blank}.
+!!! tip "Подсказка"
+    Вопросы по проблемам с фреймворком лучше задавать в <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="external-link" target="_blank">GitHub issues</a>, так больше шансов, что Вы получите помощь от [Экспертов FastAPI](fastapi-people.md#_3){.internal-link target=_blank}.
 
     Используйте этот чат только для бесед на отвлечённые темы.
 
 
 В разделе "проблемы" на GitHub, есть шаблон, который поможет Вам написать вопрос правильно, чтобы Вам было легче получить хороший ответ или даже решить проблему самостоятельно, прежде чем Вы зададите вопрос. В GitHub я могу быть уверен, что всегда отвечаю на всё, даже если это займет какое-то время. И я не могу сделать то же самое в чатах. 😅
 
-Кроме того, общение в чатах не так легкодоступно для поиска, как в GitHub, потому вопросы и ответы могут потеряться среди другого общения. И только проблемы решаемые на GitHub учитываются в получении лычки [Эксперт FastAPI](fastapi-people.md#experts){.internal-link target=_blank}, так что весьма вероятно, что Вы получите больше внимания на GitHub.
+Кроме того, общение в чатах не так легкодоступно для поиска, как в GitHub, потому вопросы и ответы могут потеряться среди другого общения. И только проблемы решаемые на GitHub учитываются в получении лычки [Эксперт FastAPI](fastapi-people.md#_3){.internal-link target=_blank}, так что весьма вероятно, что Вы получите больше внимания на GitHub.
 
 С другой стороны, в чатах тысячи пользователей, а значит есть большие шансы в любое время найти там кого-то, с кем можно поговорить. 😄
 
index 477567af69df46bbb3e2e856f573b4c4f29987ac..e9ecfa520a48720df865b324a758dd395cd883ba 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index e52ef6f6f0b4d3be9de6c8e104ba3cd3503438d0..ffba1d0f4e69e38467be9ea4409c3dd012c099df 100644 (file)
@@ -28,7 +28,7 @@
 
 === "Python 3.10+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="17-19"
 
 === "Python 3.8+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать версию с `Annotated`, если это возможно.
 
     ```Python hl_lines="19-21"
     {!> ../../../docs_src/body_multiple_params/tutorial001.py!}
     ```
 
-!!! Заметка
+!!! note "Заметка"
     Заметьте, что в данном случае параметр `item`, который будет взят из тела запроса, необязателен. Так как было установлено значение `None` по умолчанию.
 
 ## Несколько параметров тела запроса
@@ -93,7 +93,7 @@
 }
 ```
 
-!!! Внимание
+!!! note "Внимание"
     Обратите внимание, что хотя параметр `item` был объявлен таким же способом, как и раньше, теперь предпологается, что он находится внутри тела с ключом `item`.
 
 
 
 === "Python 3.10+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="20"
 
 === "Python 3.8+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="22"
@@ -205,7 +205,7 @@ q: str | None = None
 
 === "Python 3.10+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="25"
@@ -214,14 +214,14 @@ q: str | None = None
 
 === "Python 3.8+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="27"
     {!> ../../../docs_src/body_multiple_params/tutorial004.py!}
     ```
 
-!!! Информация
+!!! info "Информация"
     `Body` также имеет все те же дополнительные параметры валидации и метаданных, как у `Query`,`Path` и других, которые вы увидите позже.
 
 ## Добавление одного body-параметра
@@ -258,7 +258,7 @@ item: Item = Body(embed=True)
 
 === "Python 3.10+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="15"
@@ -267,7 +267,7 @@ item: Item = Body(embed=True)
 
 === "Python 3.8+ non-Annotated"
 
-    !!! Заметка
+    !!! tip "Заметка"
         Рекомендуется использовать `Annotated` версию, если это возможно.
 
     ```Python hl_lines="17"
index 96f80af0607ecfa6bfab785553ee77af9248c824..5d0e033fd0385e5ed2d2a1731e7983c292d99472 100644 (file)
 
 ## Без Pydantic
 
-Если вы не хотите использовать модели Pydantic, вы все еще можете использовать параметры **тела запроса**. Читайте в документации раздел [Тело - Несколько параметров: Единичные значения в теле](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank}.
+Если вы не хотите использовать модели Pydantic, вы все еще можете использовать параметры **тела запроса**. Читайте в документации раздел [Тело - Несколько параметров: Единичные значения в теле](body-multiple-params.md#_2){.internal-link target=_blank}.
index 38709e56df7c3ea523f24a735a24c68cdd953c9f..5fc6a2c1f94fc02813e308ac3c3cb6cfc5936be5 100644 (file)
@@ -74,7 +74,7 @@ from myapp import app
 
 не будет выполнена.
 
-!!! Информация
+!!! info "Информация"
     Для получения дополнительной информации, ознакомьтесь с <a href="https://docs.python.org/3/library/__main__.html" class="external-link" target="_blank">официальной документацией Python</a>.
 
 ## Запуск вашего кода с помощью отладчика
index ad6e835e5b580769ad4e8212272a9d7f952b0db7..9fce46b973f090639466459bd39e0bd6002613da 100644 (file)
 
 И в конце она возвращает `dict`, содержащий эти значения.
 
-!!! Информация
+!!! info "Информация"
 
     **FastAPI** добавил поддержку для `Annotated` (и начал её рекомендовать) в версии 0.95.0.
 
      Если у вас более старая версия, будут ошибки при попытке использовать `Annotated`.
 
-    Убедитесь, что вы [Обновили FastAPI версию](../../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} до, как минимум 0.95.1, перед тем как использовать `Annotated`.
+    Убедитесь, что вы [Обновили FastAPI версию](../../deployment/versions.md#fastapi_2){.internal-link target=_blank} до, как минимум 0.95.1, перед тем как использовать `Annotated`.
 
 ### Import `Depends`
 
index b46f235bc7bc05cb08dc103e627a3dd9f68f9e40..8a0876bb465c8fba96eb2045380ef91af61f83df 100644 (file)
@@ -310,7 +310,7 @@ https://example.com/items/foo
 ```
 
 !!! note "Технические детали"
-    Если не знаете в чём разница, посмотрите [Конкурентность: *"Нет времени?"*](../async.md#in-a-hurry){.internal-link target=_blank}.
+    Если не знаете в чём разница, посмотрите [Конкурентность: *"Нет времени?"*](../async.md#_1){.internal-link target=_blank}.
 
 ### Шаг 5: верните результат
 
index 468e089176ce47f67a8b93e4b828eb0ffbafdee1..0c6940d0e5d7fd71453041000b3eaaa075ef5792 100644 (file)
@@ -65,7 +65,7 @@
 ```
 
 !!! info "Дополнительная информация"
-    Узнайте больше о тегах в [Конфигурации операции пути](path-operation-configuration.md#tags){.internal-link target=_blank}.
+    Узнайте больше о тегах в [Конфигурации операции пути](path-operation-configuration.md#_3){.internal-link target=_blank}.
 
 ### Проверьте документацию
 
index bd2c29d0a001304f0940584096044c0675e22588..0baf51fa90d4934665539c6785315e8cbffdc4c2 100644 (file)
@@ -47,7 +47,7 @@
 
     Если вы используете более старую версию, вы столкнётесь с ошибками при попытке использовать `Annotated`.
 
-    Убедитесь, что вы [обновили версию FastAPI](../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} как минимум до 0.95.1 перед тем, как использовать `Annotated`.
+    Убедитесь, что вы [обновили версию FastAPI](../deployment/versions.md#fastapi_2){.internal-link target=_blank} как минимум до 0.95.1 перед тем, как использовать `Annotated`.
 
 ## Определите метаданные
 
index 6e885cb656fe46f8c691a8fc4e375250c0c19bd6..f6e18f9712e2b5d1f176aad323e79fee609fcee9 100644 (file)
@@ -77,7 +77,7 @@ http://127.0.0.1:8000/items/?skip=20
 
 В этом случае, параметр  `q` будет не обязательным и будет иметь значение `None` по умолчанию.
 
-!!! Важно
+!!! check "Важно"
     Также обратите внимание, что **FastAPI** достаточно умён чтобы заметить, что параметр `item_id` является path-параметром, а `q` нет, поэтому, это параметр запроса.
 
 ## Преобразование типа параметра запроса
@@ -221,5 +221,5 @@ http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
 * `skip`, типа `int` и со значением по умолчанию `0`.
 * `limit`, необязательный `int`.
 
-!!! подсказка
-    Вы можете использовать класс `Enum` также, как ранее применяли его с [Path-параметрами](path-params.md#predefined-values){.internal-link target=_blank}.
+!!! tip "Подсказка"
+    Вы можете использовать класс `Enum` также, как ранее применяли его с [Path-параметрами](path-params.md#_7){.internal-link target=_blank}.
index ec09eb5a3a1afe9f58cd8b678aa297cf963177dc..afe2075d94fb4431885f2d875a887e0ab20c61fa 100644 (file)
@@ -11,7 +11,7 @@
 {!../../../docs_src/static_files/tutorial001.py!}
 ```
 
-!!! заметка "Технические детали"
+!!! note "Технические детали"
     Вы также можете использовать `from starlette.staticfiles import StaticFiles`.
 
     **FastAPI** предоставляет `starlette.staticfiles` под псевдонимом `fastapi.staticfiles`, просто для вашего удобства, как разработчика. Но на самом деле это берётся напрямую из библиотеки Starlette.
index ca47a6f51e0bd5a30e7dc365ddb15d3e576d00ef..4772660dff450d8fd9f0c979e8bfe2feaca6d726 100644 (file)
@@ -50,7 +50,7 @@
 
 ### Файл приложения **FastAPI**
 
-Допустим, структура файлов Вашего приложения похожа на ту, что описана на странице [Более крупные приложения](./bigger-applications.md){.internal-link target=_blank}:
+Допустим, структура файлов Вашего приложения похожа на ту, что описана на странице [Более крупные приложения](bigger-applications.md){.internal-link target=_blank}:
 
 ```
 .
index aab939189ea962e3d0cd8601d81b78e2f01bf572..c7bedffd155ad6beba4bc22ba2fa42dbeb368e77 100644 (file)
@@ -21,7 +21,7 @@ async def read_results():
     return results
 ```
 
-!!! not
+!!! note "Not"
     Sadece `async def` ile tanımlanan fonksiyonlar içinde `await` kullanabilirsiniz.
 
 ---
@@ -376,7 +376,7 @@ FastAPI'ye (Starlette aracılığıyla) güç veren ve bu kadar etkileyici bir p
 
 Yukarıda açıklanan şekilde çalışmayan başka bir asenkron framework'den geliyorsanız ve küçük bir performans kazancı (yaklaşık 100 nanosaniye) için  "def" ile *path fonksiyonu* tanımlamaya alışkınsanız, **FastAPI**'de tam tersi olacağını unutmayın. Bu durumlarda, *path fonksiyonu* <abbr title="Input/Output: disk okuma veya yazma, ağ iletişimleri.">G/Ç</abbr> engelleyen durum oluşturmadıkça "async def" kullanmak daha iyidir.
 
-Yine de, her iki durumda da, **FastAPI**'nin önceki frameworkden [hala daha hızlı](index.md#performance){.internal-link target=_blank} (veya en azından karşılaştırılabilir) olma olasılığı vardır.
+Yine de, her iki durumda da, **FastAPI**'nin önceki frameworkden [hala daha hızlı](index.md#performans){.internal-link target=_blank} (veya en azından karşılaştırılabilir) olma olasılığı vardır.
 
 ### Bagımlılıklar
 
index 1cda8c7fbccda52b1c5e48965586f46858831236..b964aba4d129a91f5d4a1d508859cb90fde966e0 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Özelikler
 
 ## FastAPI özellikleri
index afbb27f7dfc24e873724c4faab17464e9fbbde58..1c72595c570c6e946b097b7c6a8d597903823e0e 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index a0d32c86e5cc653cf1e424d7a9fee7ec89c5e863..ac31111367625e0624890a4136509d48cdd7cb94 100644 (file)
@@ -12,7 +12,7 @@ Bu  pythonda tip belirteçleri için **hızlı bir başlangıç / bilgi tazeleme
 
 **FastAPI** kullanmayacak olsanız bile tür belirteçleri hakkında bilgi edinmenizde fayda var.
 
-!!! not
+!!! note "Not"
     Python uzmanıysanız ve tip belirteçleri ilgili her şeyi zaten biliyorsanız, sonraki bölüme geçin.
 
 ## Motivasyon
@@ -172,7 +172,7 @@ Liste, bazı dahili tipleri içeren bir tür olduğundan, bunları köşeli para
 {!../../../docs_src/python_types/tutorial006.py!}
 ```
 
-!!! ipucu
+!!! tip "Ipucu"
     Köşeli parantez içindeki bu dahili tiplere "tip parametreleri" denir.
 
     Bu durumda `str`, `List`e iletilen tür parametresidir.
index aa3915557c8aaea0e479858450483930b86cd564..682f8332c85f8d7a5a0c80dcab267d686f79aec4 100644 (file)
@@ -224,4 +224,4 @@ Bu durumda, 3 tane sorgu parametresi var olacaktır:
 * `limit`, isteğe bağlı bir `int`.
 
 !!! tip "İpucu"
-    Ayrıca, [Yol Parametrelerinde](path-params.md#predefined-values){.internal-link target=_blank} de kullanıldığı şekilde `Enum` sınıfından faydalanabilirsiniz.
+    Ayrıca, [Yol Parametrelerinde](path-params.md#on-tanml-degerler){.internal-link target=_blank} de kullanıldığı şekilde `Enum` sınıfından faydalanabilirsiniz.
index bdb62513e0dabbe867faaeace3c881acf2d08718..16cc0d875e1f9af53fb806668f20bda6afe51e11 100644 (file)
 
 Це був один із перших прикладів **автоматичної документації API**, і саме це була одна з перших ідей, яка надихнула на «пошук» **FastAPI**.
 
-!!! Примітка
+!!! note "Примітка"
      Django REST Framework створив Том Крісті. Той самий творець Starlette і Uvicorn, на яких базується **FastAPI**.
 
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Мати автоматичний веб-інтерфейс документації API.
 
 ### <a href="https://flask.palletsprojects.com" class="external-link" target="_blank">Flask</a>
@@ -51,7 +51,7 @@ Flask — це «мікрофреймворк», він не включає ін
 
 Враховуючи простоту Flask, він здавався хорошим підходом для створення API. Наступним, що знайшов, був «Django REST Framework» для Flask.
 
-!!! Переглянте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Бути мікрофреймоворком. Зробити легким комбінування та поєднання необхідних інструментів та частин.
 
      Мати просту та легку у використанні систему маршрутизації.
@@ -91,7 +91,7 @@ def read_url():
 
 Зверніть увагу на схожість у `requests.get(...)` і `@app.get(...)`.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      * Майте простий та інтуїтивно зрозумілий API.
      * Використовуйте імена (операції) методів HTTP безпосередньо, простим та інтуїтивно зрозумілим способом.
      * Розумні параметри за замовчуванням, але потужні налаштування.
@@ -109,7 +109,7 @@ def read_url():
 
 Тому, коли говорять про версію 2.0, прийнято говорити «Swagger», а про версію 3+ «OpenAPI».
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Прийняти і використовувати відкритий стандарт для специфікацій API замість спеціальної схеми.
 
      Інтегрувати інструменти інтерфейсу на основі стандартів:
@@ -135,7 +135,7 @@ Marshmallow створено для забезпечення цих функці
 
 Але він був створений до того, як існували підказки типу Python. Отже, щоб визначити кожну <abbr title="визначення того, як дані повинні бути сформовані">схему</abbr>, вам потрібно використовувати спеціальні утиліти та класи, надані Marshmallow.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Використовувати код для автоматичного визначення "схем", які надають типи даних і перевірку.
 
 ### <a href="https://webargs.readthedocs.io/en/latest/" class="external-link" target="_blank">Webargs</a>
@@ -148,10 +148,10 @@ Webargs — це інструмент, створений, щоб забезпе
 
 Це чудовий інструмент, і я також часто використовував його, перш ніж створити **FastAPI**.
 
-!!! Інформація
+!!! info "Інформація"
      Webargs був створений тими ж розробниками Marshmallow.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Мати автоматичну перевірку даних вхідного запиту.
 
 ### <a href="https://apispec.readthedocs.io/en/stable/" class="external-link" target="_blank">APISpec</a>
@@ -172,11 +172,11 @@ Marshmallow і Webargs забезпечують перевірку, аналіз
 
 Редактор тут нічим не може допомогти. І якщо ми змінимо параметри чи схеми Marshmallow і забудемо також змінити цю строку документа YAML, згенерована схема буде застарілою.
 
-!!! Інформація
+!!! info "Інформація"
      APISpec був створений тими ж розробниками Marshmallow.
 
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Підтримувати відкритий стандарт API, OpenAPI.
 
 ### <a href="https://flask-apispec.readthedocs.io/en/latest/" class="external-link" target="_blank">Flask-apispec</a>
@@ -199,10 +199,10 @@ Marshmallow і Webargs забезпечують перевірку, аналіз
 
 І ці самі генератори повного стеку були основою [**FastAPI** генераторів проектів](project-generation.md){.internal-link target=_blank}.
 
-!!! Інформація
+!!! info "Інформація"
      Flask-apispec був створений тими ж розробниками Marshmallow.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Створення схеми OpenAPI автоматично з того самого коду, який визначає серіалізацію та перевірку.
 
 ### <a href="https://nestjs.com/" class="external-link" target="_blank">NestJS</a> (та <a href="https://angular.io/ " class="external-link" target="_blank">Angular</a>)
@@ -219,7 +219,7 @@ Marshmallow і Webargs забезпечують перевірку, аналіз
 
 Він не дуже добре обробляє вкладені моделі. Отже, якщо тіло JSON у запиті є об’єктом JSON із внутрішніми полями, які, у свою чергу, є вкладеними об’єктами JSON, його неможливо належним чином задокументувати та перевірити.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Використовувати типи Python, щоб мати чудову підтримку редактора.
 
      Мати потужну систему впровадження залежностей. Знайдіть спосіб звести до мінімуму повторення коду.
@@ -228,12 +228,12 @@ Marshmallow і Webargs забезпечують перевірку, аналіз
 
 Це був один із перших надзвичайно швидких фреймворків Python на основі `asyncio`. Він був дуже схожий на Flask.
 
-!!! Примітка "Технічні деталі"
+!!! note "Технічні деталі"
      Він використовував <a href="https://github.com/MagicStack/uvloop" class="external-link" target="_blank">`uvloop`</a> замість стандартного циклу Python `asyncio`. Ось що зробило його таким швидким.
 
      Це явно надихнуло Uvicorn і Starlette, які зараз швидші за Sanic у відкритих тестах.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Знайти спосіб отримати божевільну продуктивність.
 
      Ось чому **FastAPI** базується на Starlette, оскільки це найшвидша доступна структура (перевірена тестами сторонніх розробників).
@@ -246,7 +246,7 @@ Falcon — ще один високопродуктивний фреймворк
 
 Таким чином, перевірка даних, серіалізація та документація повинні виконуватися в коді, а не автоматично. Або вони повинні бути реалізовані як фреймворк поверх Falcon, як Hug. Така сама відмінність спостерігається в інших фреймворках, натхненних дизайном Falcon, що мають один об’єкт запиту та один об’єкт відповіді як параметри.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Знайти способи отримати чудову продуктивність.
 
      Разом із Hug (оскільки Hug базується на Falcon) надихнув **FastAPI** оголосити параметр `response` у функціях.
@@ -269,7 +269,7 @@ Falcon — ще один високопродуктивний фреймворк
 
 Маршрути оголошуються в одному місці з використанням функцій, оголошених в інших місцях (замість використання декораторів, які можна розмістити безпосередньо поверх функції, яка обробляє кінцеву точку). Це ближче до того, як це робить Django, ніж до Flask (і Starlette). Він розділяє в коді речі, які відносно тісно пов’язані.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Визначити додаткові перевірки для типів даних, використовуючи значення "за замовчуванням" атрибутів моделі. Це покращує підтримку редактора, а раніше вона була недоступна в Pydantic.
 
      Це фактично надихнуло оновити частини Pydantic, щоб підтримувати той самий стиль оголошення перевірки (всі ці функції вже доступні в Pydantic).
@@ -288,10 +288,10 @@ Hug був одним із перших фреймворків, який реа
 
 Оскільки він заснований на попередньому стандарті для синхронних веб-фреймворків Python (WSGI), він не може працювати з Websockets та іншими речами, хоча він також має високу продуктивність.
 
-!!! Інформація
+!!! info "Інформація"
      Hug створив Тімоті Крослі, той самий творець <a href="https://github.com/timothycrosley/isort" class="external-link" target="_blank">`isort`</a>, чудовий інструмент для автоматичного сортування імпорту у файлах Python.
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Hug надихнув частину APIStar і був одним із найбільш перспективних інструментів, поряд із APIStar.
 
      Hug надихнув **FastAPI** на використання підказок типу Python для оголошення параметрів і автоматичного створення схеми, що визначає API.
@@ -322,14 +322,14 @@ Hug був одним із перших фреймворків, який реа
 
 Тепер APIStar — це набір інструментів для перевірки специфікацій OpenAPI, а не веб-фреймворк.
 
-!!! Інформація
+!!! info "Інформація"
      APIStar створив Том Крісті. Той самий хлопець, який створив:
 
      * Django REST Framework
      * Starlette (на якому базується **FastAPI**)
      * Uvicorn (використовується Starlette і **FastAPI**)
 
-!!! Перегляньте "Надихнуло **FastAPI** на"
+!!! check "Надихнуло **FastAPI** на"
      Існувати.
 
      Ідею оголошення кількох речей (перевірки даних, серіалізації та документації) за допомогою тих самих типів Python, які в той же час забезпечували чудову підтримку редактора, я вважав геніальною ідеєю.
@@ -348,7 +348,7 @@ Pydantic — це бібліотека для визначення переві
 
 Його можна порівняти з Marshmallow. Хоча він швидший за Marshmallow у тестах. Оскільки він базується на тих самих підказках типу Python, підтримка редактора чудова.
 
-!!! Перегляньте "**FastAPI** використовує його для"
+!!! check "**FastAPI** використовує його для"
      Виконання перевірки всіх даних, серіалізації даних і автоматичної документацію моделі (на основі схеми JSON).
 
      Потім **FastAPI** бере ці дані схеми JSON і розміщує їх у OpenAPI, окремо від усіх інших речей, які він робить.
@@ -380,12 +380,12 @@ Starlette надає всі основні функції веб-мікрофр
 
 Це одна з головних речей, які **FastAPI** додає зверху, все на основі підказок типу Python (з використанням Pydantic). Це, а також система впровадження залежностей, утиліти безпеки, створення схеми OpenAPI тощо.
 
-!!! Примітка "Технічні деталі"
+!!! note "Технічні деталі"
      ASGI — це новий «стандарт», який розробляється членами основної команди Django. Це ще не «стандарт Python» (PEP), хоча вони в процесі цього.
 
      Тим не менш, він уже використовується як «стандарт» кількома інструментами. Це значно покращує сумісність, оскільки ви можете переключити Uvicorn на будь-який інший сервер ASGI (наприклад, Daphne або Hypercorn), або ви можете додати інструменти, сумісні з ASGI, як-от `python-socketio`.
 
-!!! Перегляньте "**FastAPI** використовує його для"
+!!! check "**FastAPI** використовує його для"
      Керування всіма основними веб-частинами. Додавання функцій зверху.
 
      Сам клас `FastAPI` безпосередньо успадковує клас `Starlette`.
@@ -400,7 +400,7 @@ Uvicorn — це блискавичний сервер ASGI, побудован
 
 Це рекомендований сервер для Starlette і **FastAPI**.
 
-!!! Перегляньте "**FastAPI** рекомендує це як"
+!!! check "**FastAPI** рекомендує це як"
      Основний веб-сервер для запуску програм **FastAPI**.
 
      Ви можете поєднати його з Gunicorn, щоб мати асинхронний багатопроцесний сервер.
index f7d0220b595a043aa417b40e46941afead096625..152a7b098015e80266b6a5d8a162e6eed23f8c1c 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Люди FastAPI
 
 FastAPI має дивовижну спільноту, яка вітає людей різного походження.
@@ -28,7 +33,7 @@ FastAPI має дивовижну спільноту, яка вітає люде
 
 Це люди, які:
 
-* [Допомагають іншим із проблемами (запитаннями) у GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}.
+* [Допомагають іншим із проблемами (запитаннями) у GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank}.
 * [Створюють пул реквести](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}.
 * Переглядають пул реквести, [особливо важливо для перекладів](contributing.md#translations){.internal-link target=_blank}.
 
@@ -36,7 +41,7 @@ FastAPI має дивовижну спільноту, яка вітає люде
 
 ## Найбільш активні користувачі минулого місяця
 
-Це користувачі, які [найбільше допомагали іншим із проблемами (запитаннями) у GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} протягом минулого місяця. ☕
+Це користувачі, які [найбільше допомагали іншим із проблемами (запитаннями) у GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} протягом минулого місяця. ☕
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -52,7 +57,7 @@ FastAPI має дивовижну спільноту, яка вітає люде
 
 Ось **експерти FastAPI**. 🤓
 
-Це користувачі, які [найбільше допомагали іншим із проблемами (запитаннями) у GitHub](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank} протягом *всього часу*.
+Це користувачі, які [найбільше допомагали іншим із проблемами (запитаннями) у GitHub](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} протягом *всього часу*.
 
 Вони зарекомендували себе як експерти, допомагаючи багатьом іншим. ✨
 
index e767db2fbc223c450b5c2f7b296d8e3c79881f19..d0adadff37990f873b550392c4dffeb3f8d05d5a 100644 (file)
@@ -168,7 +168,7 @@ John Doe
 
     З модуля `typing`, імпортуємо `List` (з великої літери `L`):
 
-    ``` Python hl_lines="1"
+    ```Python hl_lines="1"
     {!> ../../../docs_src/python_types/tutorial006.py!}
     ```
 
index b6583341f3df30b6bd8af542b027803d6a772fbc..49321ff1170434ece21bdddaba2e633187bd91a3 100644 (file)
@@ -38,5 +38,5 @@
 
 Вона не повертає велику строку `str`, яка містить дані у форматі JSON (як строка). Вона повертає стандартну структуру даних Python (наприклад `dict`) із значеннями та підзначеннями, які є сумісними з JSON.
 
-!!! Примітка
+!!! note "Примітка"
     `jsonable_encoder` фактично використовується **FastAPI** внутрішньо для перетворення даних. Проте вона корисна в багатьох інших сценаріях.
index 9edb1c8fa2b91559722aab7e89f045b7e6c35085..fe75591dc2de7d8dc67be25632eb117abf57e96d 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # Tính năng
 
 ## Tính năng của FastAPI
index 3ade853e2838fd198743be6097035a83df6d2838..eb078bc4ad4dc065176825e930219f05b381b6d0 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -31,7 +40,7 @@ FastAPI là một web framework hiện đại, hiệu năng cao để xây dựn
 
 Những tính năng như:
 
-* **Nhanh**: Hiệu năng rất cao khi so sánh với **NodeJS** và **Go** (cảm ơn Starlette và Pydantic). [Một trong những Python framework nhanh nhất](#performance).
+* **Nhanh**: Hiệu năng rất cao khi so sánh với **NodeJS** và **Go** (cảm ơn Starlette và Pydantic). [Một trong những Python framework nhanh nhất](#hieu-nang).
 * **Code nhanh**: Tăng tốc độ phát triển tính năng từ 200% tới 300%. *
 * **Ít lỗi hơn**: Giảm khoảng 40% những lỗi phát sinh bởi con người (nhà phát triển). *
 * **Trực giác tốt hơn**: Được các trình soạn thảo hỗ tuyệt vời. <abbr title="như auto-complete, autocompletion, IntelliSense">Completion</abbr> mọi nơi. Ít thời gian gỡ lỗi.
index b2a399aa5e5f071cf8e1253633dc2c683a0e54d1..84d14de5572b55a9c85c43908535f8dc4f02ab6a 100644 (file)
@@ -186,7 +186,7 @@ Ví dụ, hãy định nghĩa một biến là `list` các `str`.
 
     Từ `typing`, import `List` (với chữ cái `L` viết hoa):
 
-    ``` Python hl_lines="1"
+    ```Python hl_lines="1"
     {!> ../../../docs_src/python_types/tutorial006.py!}
     ```
 
index 5684f0a6a2b9328cfd0c65d9f18188bfa3159f0a..c3c7093503afdcbc8d749b1ad188e7bef8800ab0 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
@@ -31,7 +40,7 @@ FastAPI jẹ́ ìgbàlódé, tí ó yára (iṣẹ-giga), ìlànà wẹ́ẹ́b
 
 Àwọn ẹya pàtàkì ni:
 
-* **Ó yára**: Iṣẹ tí ó ga púpọ̀, tí ó wa ni ibamu pẹ̀lú **NodeJS** àti **Go** (ọpẹ si Starlette àti Pydantic). [Ọkan nínú àwọn ìlànà Python ti o yára jùlọ ti o wa](#performance).
+* **Ó yára**: Iṣẹ tí ó ga púpọ̀, tí ó wa ni ibamu pẹ̀lú **NodeJS** àti **Go** (ọpẹ si Starlette àti Pydantic). [Ọkan nínú àwọn ìlànà Python ti o yára jùlọ ti o wa](#isesi).
 * **Ó yára láti kóòdù**: O mu iyara pọ si láti kọ àwọn ẹya tuntun kóòdù nipasẹ "Igba ìdá ọgọ́rùn-ún" (i.e. 200%) si "ọ̀ọ́dúrún ìdá ọgọ́rùn-ún" (i.e. 300%).
 * **Àìtọ́ kékeré**: O n din aṣiṣe ku bi ọgbon ìdá ọgọ́rùn-ún (i.e. 40%) ti eda eniyan (oṣiṣẹ kóòdù) fa. *
 * **Ọgbọ́n àti ìmọ̀**: Atilẹyin olootu nla. <abbr title="a tun le pe ni olùrànlọ́wọ́ alaifiọwọkan alaifọwọyi, olùpari iṣẹ-ṣiṣe, Oloye">Ìparí</abbr> nibi gbogbo. Àkókò díẹ̀ nipa wíwá ibi tí ìṣòro kóòdù wà.
index 738bd7119b522ebfeafe8c06c00733fc592fb6b4..17fc2830a8e53c203bc471e561cafeba1ec4b182 100644 (file)
@@ -346,6 +346,6 @@ $ uvicorn main:app --root-path /api/v1
 
 ## 挂载子应用
 
-如需挂载子应用(详见 [子应用 - 挂载](./sub-applications.md){.internal-link target=_blank}),也要通过 `root_path` 使用代理,这与正常应用一样,别无二致。
+如需挂载子应用(详见 [子应用 - 挂载](sub-applications.md){.internal-link target=_blank}),也要通过 `root_path` 使用代理,这与正常应用一样,别无二致。
 
 FastAPI 在内部使用 `root_path`,因此子应用也可以正常运行。✨
index 6017b8ef02f20bfe4a48f7ed307ed560f4102c4b..8e5fa7d1245411650a058b689a44a71ecafbb7e8 100644 (file)
@@ -6,7 +6,7 @@
 
 !!! warning "警告"
 
-    **FastAPI** 只执行主应用中的事件处理器,不执行[子应用 - 挂载](./sub-applications.md){.internal-link target=_blank}中的事件处理器。
+    **FastAPI** 只执行主应用中的事件处理器,不执行[子应用 - 挂载](sub-applications.md){.internal-link target=_blank}中的事件处理器。
 
 ## `startup` 事件
 
index 85dab15ac092fc4f53e9bcad80f0f3a449d0bdaf..229efffcb14df96fea3ee2f7419d012a308f5ce4 100644 (file)
@@ -25,7 +25,7 @@
 ```
 
 
-!!! 注意 "技术细节"
+!!! note "技术细节"
     你也可以使用`from starlette.responses import Response`或`from starlette.responses import JSONResponse`。
 
     **FastAPI**提供了与`fastapi.responses`相同的`starlette.responses`,只是为了方便开发者。但是,大多数可用的响应都直接来自Starlette。
index 55651def53fc13f260b732f0876eed572c89dbe5..a26301b50a72e4c94e2022ddd09dd35e8eda36ca 100644 (file)
@@ -70,4 +70,4 @@ $ uvicorn main:app --reload
 
 并且子应用还可以再挂载子应用,一切都会正常运行,FastAPI 可以自动处理所有 `root_path`。
 
-关于 `root_path` 及如何显式使用 `root_path` 的内容,详见[使用代理](./behind-a-proxy.md){.internal-link target=_blank}一章。
+关于 `root_path` 及如何显式使用 `root_path` 的内容,详见[使用代理](behind-a-proxy.md){.internal-link target=_blank}一章。
index ad71280fc61800afdbe250d6fe55f4b416b0816d..179ec88aabafbbfccc268d984f32942ac55f615a 100644 (file)
@@ -1,6 +1,6 @@
 # 包含 WSGI - Flask,Django,其它
 
-您可以挂载多个 WSGI 应用,正如您在 [Sub Applications - Mounts](./sub-applications.md){.internal-link target=_blank}, [Behind a Proxy](./behind-a-proxy.md){.internal-link target=_blank} 中所看到的那样。
+您可以挂载多个 WSGI 应用,正如您在 [Sub Applications - Mounts](sub-applications.md){.internal-link target=_blank}, [Behind a Proxy](behind-a-proxy.md){.internal-link target=_blank} 中所看到的那样。
 
 为此, 您可以使用 `WSGIMiddleware` 来包装你的 WSGI 应用,如:Flask,Django,等等。
 
index ed0e6e497c962b7d416c08eb0edf722536a61822..b34ef63e0ab083e2875f5ef42462ea358653f889 100644 (file)
@@ -405,15 +405,15 @@ Starlette (和 **FastAPI**) 是基于 <a href="https://anyio.readthedocs.io/
 
 如果您使用过另一个不以上述方式工作的异步框架,并且您习惯于用普通的 `def` 定义普通的仅计算路径操作函数,以获得微小的性能增益(大约100纳秒),请注意,在 FastAPI 中,效果将完全相反。在这些情况下,最好使用 `async def`,除非路径操作函数内使用执行阻塞 <abbr title="输入/输出:磁盘读写,网络通讯.">I/O</abbr> 的代码。
 
-在这两种情况下,与您之前的框架相比,**FastAPI** 可能[仍然很快](index.md#performance){.internal-link target=_blank}。
+在这两种情况下,与您之前的框架相比,**FastAPI** 可能[仍然很快](index.md#_11){.internal-link target=_blank}。
 
 ### 依赖
 
-这同样适用于[依赖](./tutorial/dependencies/index.md){.internal-link target=_blank}。如果一个依赖是标准的 `def` 函数而不是 `async def`,它将被运行在外部线程池中。
+这同样适用于[依赖](tutorial/dependencies/index.md){.internal-link target=_blank}。如果一个依赖是标准的 `def` 函数而不是 `async def`,它将被运行在外部线程池中。
 
 ### 子依赖
 
-你可以拥有多个相互依赖的依赖以及[子依赖](./tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} (作为函数的参数),它们中的一些可能是通过 `async def` 声明,也可能是通过 `def` 声明。它们仍然可以正常工作,这些通过 `def` 声明的函数将会在外部线程中调用(来自线程池),而不是"被等待"。
+你可以拥有多个相互依赖的依赖以及[子依赖](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} (作为函数的参数),它们中的一些可能是通过 `async def` 声明,也可能是通过 `def` 声明。它们仍然可以正常工作,这些通过 `def` 声明的函数将会在外部线程中调用(来自线程池),而不是"被等待"。
 
 ### 其他函数
 
index 9c4aaa64b5d6f3789e34f9d676cce63be46d509c..86d995b75203bb07477facdcee18032735a6f896 100644 (file)
@@ -25,7 +25,7 @@
 
 ## 安全性 - HTTPS
 
-在[上一章有关 HTTPS](./https.md){.internal-link target=_blank} 中,我们了解了 HTTPS 如何为您的 API 提供加密。
+在[上一章有关 HTTPS](https.md){.internal-link target=_blank} 中,我们了解了 HTTPS 如何为您的 API 提供加密。
 
 我们还看到,HTTPS 通常由应用程序服务器的**外部**组件(**TLS 终止代理**)提供。
 
 
 ### 工作进程和端口
 
-还记得文档 [About HTTPS](./https.md){.internal-link target=_blank} 中只有一个进程可以侦听服务器中的端口和 IP 地址的一种组合吗?
+还记得文档 [About HTTPS](https.md){.internal-link target=_blank} 中只有一个进程可以侦听服务器中的端口和 IP 地址的一种组合吗?
 
 现在仍然是对的。
 
 
      如果这些关于 **容器**、Docker 或 Kubernetes 的内容还没有多大意义,请不要担心。
 
-     我将在以后的章节中向您详细介绍容器镜像、Docker、Kubernetes 等:[容器中的 FastAPI - Docker](./docker.md){.internal-link target=_blank}。
+     我将在以后的章节中向您详细介绍容器镜像、Docker、Kubernetes 等:[容器中的 FastAPI - Docker](docker.md){.internal-link target=_blank}。
 
 ## 启动之前的步骤
 
 
 !!! tip
 
-     我将在以后的章节中为您提供使用容器执行此操作的更具体示例:[容器中的 FastAPI - Docker](./docker.md){.internal-link target=_blank}。
+     我将在以后的章节中为您提供使用容器执行此操作的更具体示例:[容器中的 FastAPI - Docker](docker.md){.internal-link target=_blank}。
 
 ## 资源利用率
 
index 0f8906704128e15f5e7ebdfd275ba2863990a0a0..782c6d578c51cad20aa9c58fd041818e30919def 100644 (file)
@@ -5,7 +5,7 @@
 使用 Linux 容器有几个优点,包括**安全性**、**可复制性**、**简单性**等。
 
 !!! tip
-    赶时间并且已经知道这些东西了? 跳转到下面的 [`Dockerfile` 👇](#为-fastapi-构建-docker-镜像)。
+    赶时间并且已经知道这些东西了? 跳转到下面的 [`Dockerfile` 👇](#fastapi-docker_1)。
 
 
 <details>
@@ -114,7 +114,7 @@ Docker 一直是创建和管理**容器镜像**和**容器**的主要工具之
 
 最常见的方法是创建一个`requirements.txt`文件,其中每行包含一个包名称和它的版本。
 
-你当然也可以使用在[关于 FastAPI 版本](./versions.md){.internal-link target=_blank} 中讲到的方法来设置版本范围。
+你当然也可以使用在[关于 FastAPI 版本](versions.md){.internal-link target=_blank} 中讲到的方法来设置版本范围。
 
 例如,你的`requirements.txt`可能如下所示:
 
@@ -208,7 +208,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
 
      `--no-cache-dir` 选项告诉 `pip` 不要在本地保存下载的包,因为只有当 `pip` 再次运行以安装相同的包时才会这样,但在与容器一起工作时情况并非如此。
 
-     !!! 笔记
+     !!! note "笔记"
          `--no-cache-dir` 仅与 `pip` 相关,与 Docker 或容器无关。
 
      `--upgrade` 选项告诉 `pip` 升级软件包(如果已经安装)。
@@ -387,7 +387,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## 部署概念
 
-我们再谈谈容器方面的一些相同的[部署概念](./concepts.md){.internal-link target=_blank}。
+我们再谈谈容器方面的一些相同的[部署概念](concepts.md){.internal-link target=_blank}。
 
 容器主要是一种简化**构建和部署**应用程序的过程的工具,但它们并不强制执行特定的方法来处理这些**部署概念**,并且有几种可能的策略。
 
@@ -537,7 +537,7 @@ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
 
 ## 带有 Gunicorn 的官方 Docker 镜像 - Uvicorn
 
-有一个官方 Docker 镜像,其中包含与 Uvicorn worker一起运行的 Gunicorn,如上一章所述:[服务器工作线程 - Gunicorn 与 Uvicorn](./server-workers.md){.internal-link target=_blank}。
+有一个官方 Docker 镜像,其中包含与 Uvicorn worker一起运行的 Gunicorn,如上一章所述:[服务器工作线程 - Gunicorn 与 Uvicorn](server-workers.md){.internal-link target=_blank}。
 
 该镜像主要在上述情况下有用:[具有多个进程和特殊情况的容器](#containers-with-multiple-processes-and-special-cases)。
 
index ee3de9b5da40661aad8cdf5a5aa847dc1e101abb..330ddb3d7b55abaaeb445ad6091f94b6e5598614 100644 (file)
 
 部署应用程序时,您可能希望进行一些**进程复制**,以利用**多核**并能够处理更多请求。
 
-正如您在上一章有关[部署概念](./concepts.md){.internal-link target=_blank}中看到的,您可以使用多种策略。
+正如您在上一章有关[部署概念](concepts.md){.internal-link target=_blank}中看到的,您可以使用多种策略。
 
 在这里我将向您展示如何将 <a href="https://gunicorn.org/" class="external-link" target="_blank">**Gunicorn**</a> 与 **Uvicorn worker 进程** 一起使用。
 
 !!! info
-    如果您正在使用容器,例如 Docker 或 Kubernetes,我将在下一章中告诉您更多相关信息:[容器中的 FastAPI - Docker](./docker.md){.internal-link target=_blank}。
+    如果您正在使用容器,例如 Docker 或 Kubernetes,我将在下一章中告诉您更多相关信息:[容器中的 FastAPI - Docker](docker.md){.internal-link target=_blank}。
 
     特别是,当在 **Kubernetes** 上运行时,您可能**不想**使用 Gunicorn,而是运行 **每个容器一个 Uvicorn 进程**,但我将在本章后面告诉您这一点。
 
@@ -169,7 +169,7 @@ $ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
 
 ## 容器和 Docker
 
-在关于 [容器中的 FastAPI - Docker](./docker.md){.internal-link target=_blank} 的下一章中,我将介绍一些可用于处理其他 **部署概念** 的策略。
+在关于 [容器中的 FastAPI - Docker](docker.md){.internal-link target=_blank} 的下一章中,我将介绍一些可用于处理其他 **部署概念** 的策略。
 
 我还将向您展示 **官方 Docker 镜像**,其中包括 **Gunicorn 和 Uvicorn worker** 以及一些对简单情况有用的默认配置。
 
index 7ef3f3c1a688ad0b93bc32f6e6cc3719ba4fc039..6cf35253c364b5061e5117aaa323794bc349ae33 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # FastAPI 社区
 
 FastAPI 有一个非常棒的社区,它欢迎来自各个领域和背景的朋友。
@@ -18,7 +23,7 @@ FastAPI 有一个非常棒的社区,它欢迎来自各个领域和背景的朋
 </div>
 {% endif %}
 
-我是 **FastAPI** 的创建者和维护者. 你能在 [帮助 FastAPI - 获取帮助 - 与作者联系](help-fastapi.md#connect-with-the-author){.internal-link target=_blank} 阅读有关此内容的更多信息。
+我是 **FastAPI** 的创建者和维护者. 你能在 [帮助 FastAPI - 获取帮助 - 与作者联系](help-fastapi.md#_2){.internal-link target=_blank} 阅读有关此内容的更多信息。
 
 ...但是在这里我想向您展示社区。
 
@@ -28,15 +33,15 @@ FastAPI 有一个非常棒的社区,它欢迎来自各个领域和背景的朋
 
 这些人:
 
-* [帮助他人解决 GitHub 的 issues](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}。
-* [创建 Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}。
-* 审核 Pull Requests, 对于 [翻译](contributing.md#translations){.internal-link target=_blank} 尤为重要。
+* [帮助他人解决 GitHub 的 issues](help-fastapi.md#github_1){.internal-link target=_blank}。
+* [创建 Pull Requests](help-fastapi.md#pr){.internal-link target=_blank}。
+* 审核 Pull Requests, 对于 [翻译](contributing.md#_8){.internal-link target=_blank} 尤为重要。
 
 向他们致以掌声。 👏 🙇
 
 ## 上个月最活跃的用户
 
-上个月这些用户致力于 [帮助他人解决 GitHub 的 issues](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}。
+上个月这些用户致力于 [帮助他人解决 GitHub 的 issues](help-fastapi.md#github_1){.internal-link target=_blank}。
 
 {% if people %}
 <div class="user-list user-list-center">
@@ -52,7 +57,7 @@ FastAPI 有一个非常棒的社区,它欢迎来自各个领域和背景的朋
 
 以下是 **FastAPI 专家**。 🤓
 
-这些用户一直以来致力于 [帮助他人解决 GitHub 的 issues](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}。
+这些用户一直以来致力于 [帮助他人解决 GitHub 的 issues](help-fastapi.md#github_1){.internal-link target=_blank}。
 
 他们通过帮助许多人而被证明是专家。✨
 
@@ -70,7 +75,7 @@ FastAPI 有一个非常棒的社区,它欢迎来自各个领域和背景的朋
 
 以下是 **杰出的贡献者**。 👷
 
-这些用户 [创建了最多已被合并的 Pull Requests](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}。
+这些用户 [创建了最多已被合并的 Pull Requests](help-fastapi.md#pr){.internal-link target=_blank}。
 
 他们贡献了源代码,文档,翻译等。 📦
 
@@ -92,7 +97,7 @@ FastAPI 有一个非常棒的社区,它欢迎来自各个领域和背景的朋
 
 ### 翻译审核
 
-我只会说少数几种语言(而且还不是很流利 😅)。所以,具备[能力去批准文档翻译](contributing.md#translations){.internal-link target=_blank} 是这些评审者们。如果没有它们,就不会有多语言文档。
+我只会说少数几种语言(而且还不是很流利 😅)。所以,具备[能力去批准文档翻译](contributing.md#_8){.internal-link target=_blank} 是这些评审者们。如果没有它们,就不会有多语言文档。
 
 ---
 
index d8190032f62333826a95b2ee284f705703a9c37a..b613aaf724a3989007d686f31a58dfa10f27ec2f 100644 (file)
@@ -1,3 +1,8 @@
+---
+hide:
+  - navigation
+---
+
 # 特性
 
 ## FastAPI 特性
index 1a9aa57d06f70756520a106453d0414fdbcc92b7..d2a210c39f209eb24742b310bde4b21b2cb7253e 100644 (file)
@@ -72,7 +72,7 @@
 
 您可以查看<a href="https://github.com/tiangolo/fastapi/issues" class="external-link" target="_blank">现有 issues</a>,并尝试帮助其他人解决问题,说不定您能解决这些问题呢。🤓
 
-如果帮助很多人解决了问题,您就有可能成为 [FastAPI 的官方专家](fastapi-people.md#experts){.internal-link target=_blank}。🎉
+如果帮助很多人解决了问题,您就有可能成为 [FastAPI 的官方专家](fastapi-people.md#_3){.internal-link target=_blank}。🎉
 
 ## 监听 GitHub 资源库
 
@@ -98,7 +98,7 @@
 * 修改文档错别字
 * <a href="https://github.com/tiangolo/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">编辑这个文件</a>,分享 FastAPI 的文章、视频、博客,不论是您自己的,还是您看到的都成
     * 注意,添加的链接要放在对应区块的开头
-* [翻译文档](contributing.md#translations){.internal-link target=_blank}
+* [翻译文档](contributing.md#_8){.internal-link target=_blank}
     * 审阅别人翻译的文档
 * 添加新的文档内容
 * 修复现有问题/Bug
 
 !!! tip "提示"
 
-    如有问题,请在 <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="external-link" target="_blank">GitHub Issues</a> 里提问,在这里更容易得到 [FastAPI 专家](fastapi-people.md#experts){.internal-link target=_blank}的帮助。
+    如有问题,请在 <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="external-link" target="_blank">GitHub Issues</a> 里提问,在这里更容易得到 [FastAPI 专家](fastapi-people.md#_3){.internal-link target=_blank}的帮助。
 
     聊天室仅供闲聊。
 
 
 GitHub Issues 里提供了模板,指引您提出正确的问题,有利于获得优质的回答,甚至可能解决您还没有想到的问题。而且就算答疑解惑要耗费不少时间,我还是会尽量在 GitHub 里回答问题。但在聊天室里,我就没功夫这么做了。😅
 
-聊天室里的聊天内容也不如 GitHub 里好搜索,聊天里的问答很容易就找不到了。只有在 GitHub Issues 里的问答才能帮助您成为  [FastAPI 专家](fastapi-people.md#experts){.internal-link target=_blank},在 GitHub Issues 中为您带来更多关注。
+聊天室里的聊天内容也不如 GitHub 里好搜索,聊天里的问答很容易就找不到了。只有在 GitHub Issues 里的问答才能帮助您成为  [FastAPI 专家](fastapi-people.md#_3){.internal-link target=_blank},在 GitHub Issues 中为您带来更多关注。
 
 另一方面,聊天室里有成千上万的用户,在这里,您有很大可能遇到聊得来的人。😄
 
index a480d6640783c188b602b6ef016e1dff9f4357a1..eda2e8fd7237246910026afcf80d2b6c8c72b7a9 100644 (file)
@@ -1,3 +1,12 @@
+---
+hide:
+  - navigation
+---
+
+<style>
+.md-content .md-typeset h1 { display: none; }
+</style>
+
 <p align="center">
   <a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
 </p>
index 13895956693132872c104100769b5fce41e79118..422cd7c168012d034391a268bf11bf735bac00c8 100644 (file)
 !!! tip
     我们正在使用虚构的请求首部来简化此示例。
 
-    但在实际情况下,使用集成的[安全性实用工具](./security/index.md){.internal-link target=_blank}会得到更好的效果。
+    但在实际情况下,使用集成的[安全性实用工具](security/index.md){.internal-link target=_blank}会得到更好的效果。
 
 ## 其他使用 `APIRouter` 的模块
 
index 43f20f8fcbd9cd3ca4440ce6dd7bd0a84ead446c..e529fc914f3b79172a11d0f693905c406bcd1801 100644 (file)
@@ -34,7 +34,7 @@
 
 即,只发送要更新的数据,其余数据保持不变。
 
-!!! Note "笔记"
+!!! note "笔记"
 
     `PATCH` 没有 `PUT` 知名,也怎么不常用。
 
index fa8b54d0245eebc2c46ac3aa1f94a310e835b6fc..65d459cd17112ea4d2987233d099197698057f64 100644 (file)
@@ -213,4 +213,4 @@ Pydantic 模型的 JSON 概图是 OpenAPI 生成的概图部件,可在 API 文
 
 ## 不使用 Pydantic
 
-即便不使用 Pydantic 模型也能使用 **Body** 参数。详见[请求体 - 多参数:请求体中的单值](body-multiple-params.md#singular-values-in-body){.internal-link target=\_blank}。
+即便不使用 Pydantic 模型也能使用 **Body** 参数。详见[请求体 - 多参数:请求体中的单值](body-multiple-params.md#_2){.internal-link target=\_blank}。
index e24b9409f6160d1b5d65dde11bdbb56be5840412..4159d626ec1857b322b38795f4d7d8c976d14f40 100644 (file)
@@ -4,10 +4,10 @@ FastAPI支持在完成后执行一些<abbr title='有时也被称为“退出”
 
 为此,请使用 `yield` 而不是 `return`,然后再编写额外的步骤(代码)。
 
-!!! 提示
+!!! tip "提示"
     确保只使用一次 `yield` 。
 
-!!! 注意 "技术细节"
+!!! note "技术细节"
 
     任何一个可以与以下内容一起使用的函数:
 
@@ -41,7 +41,7 @@ FastAPI支持在完成后执行一些<abbr title='有时也被称为“退出”
 {!../../../docs_src/dependencies/tutorial007.py!}
 ```
 
-!!! 提示
+!!! tip "提示"
 
     您可以使用 `async` 或普通函数。
 
index 8170e6ecc5fee3606cf833fa7d96d29c0de68dc8..59a4af86e2313e8d0ce12b1328ceb5f0815ec316 100644 (file)
@@ -43,7 +43,7 @@
 \r
 注意你可以在描述内使用 Markdown,例如「login」会显示为粗体(**login**)以及「fancy」会显示为斜体(_fancy_)。\r
 \r
-!!! 提示\r
+!!! tip "提示"\r
     不必为你使用的所有标签都添加元数据。\r
 \r
 ### 使用你的标签\r
@@ -54,7 +54,7 @@
 {!../../../docs_src/metadata/tutorial004.py!}\r
 ```\r
 \r
-!!! 信息\r
+!!! info "信息"\r
     阅读更多关于标签的信息[路径操作配置](path-operation-configuration.md#tags){.internal-link target=_blank}。\r
 \r
 ### 查看文档\r
index 308dd68a486ab2742dd111f013b0207fc533d726..77138de510ff26814e7f27b73f4f6ce3f97c1845 100644 (file)
@@ -206,5 +206,4 @@ http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
 * `limit`,可选的 `int` 类型参数
 
 !!! tip "提示"
-
-    还可以像在[路径参数](path-params.md#predefined-values){.internal-link target=_blank} 中那样使用 `Enum`。
+    还可以像在[路径参数](path-params.md#_8){.internal-link target=_blank} 中那样使用 `Enum`。
index c7f46177f03147878253e541aa2f8d07561f94f9..751767ea226462078e1f28e63fedfbec63bf5e88 100644 (file)
@@ -144,7 +144,7 @@ UserInDB(
 
 !!! info "说明"
 
-    `user_dict` 的说明,详见[**更多模型**一章](../extra-models.md#about-user_indict){.internal-link target=_blank}。
+    `user_dict` 的说明,详见[**更多模型**一章](../extra-models.md#user_indict){.internal-link target=_blank}。
 
 ## 返回 Token
 
index 77fff759642f9412fcec61d8b1b7f7209d49f9bd..69841978c7db6b9878a52a50df4c441cbe966e9f 100644 (file)
@@ -8,7 +8,7 @@
 
 ## 使用 `TestClient`
 
-!!! 信息
+!!! info "信息"
     要使用 `TestClient`,先要安装 <a href="https://www.python-httpx.org" class="external-link" target="_blank">`httpx`</a>.
 
     例:`pip install httpx`.
@@ -27,7 +27,7 @@
 {!../../../docs_src/app_testing/tutorial001.py!}
 ```
 
-!!! 提示
+!!! tip "提示"
     注意测试函数是普通的 `def`,不是 `async def`。
 
     还有client的调用也是普通的调用,不是用 `await`。
@@ -39,7 +39,7 @@
 
     **FastAPI** 提供了和 `starlette.testclient` 一样的 `fastapi.testclient`,只是为了方便开发者。但它直接来自Starlette。
 
-!!! 提示
+!!! tip "提示"
     除了发送请求之外,如果你还想测试时在FastAPI应用中调用 `async` 函数(例如异步数据库函数), 可以在高级教程中看下 [Async Tests](../advanced/async-tests.md){.internal-link target=_blank} 。
 
 ## 分离测试
@@ -50,7 +50,7 @@
 
 ### **FastAPI** app 文件
 
-假设你有一个像 [更大的应用](./bigger-applications.md){.internal-link target=_blank} 中所描述的文件结构:
+假设你有一个像 [更大的应用](bigger-applications.md){.internal-link target=_blank} 中所描述的文件结构:
 
 ```
 .
 
 === "Python 3.10+ non-Annotated"
 
-    !!! tip
+    !!! tip "提示"
         Prefer to use the `Annotated` version if possible.
 
     ```Python
 
 === "Python 3.8+ non-Annotated"
 
-    !!! tip
+    !!! tip "提示"
         Prefer to use the `Annotated` version if possible.
 
     ```Python
 
 关于如何传数据给后端的更多信息 (使用`httpx` 或 `TestClient`),请查阅 <a href="https://www.python-httpx.org" class="external-link" target="_blank">HTTPX 文档</a>.
 
-!!! 信息
+!!! info "信息"
     注意 `TestClient` 接收可以被转化为JSON的数据,而不是Pydantic模型。
 
     如果你在测试中有一个Pydantic模型,并且你想在测试时发送它的数据给应用,你可以使用在[JSON Compatible Encoder](encoder.md){.internal-link target=_blank}介绍的`jsonable_encoder` 。