Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔧 Update docs setup with latest configs and plugins #11953

Merged
merged 11 commits into from
Aug 6, 2024
  •  
  •  
  •  
Prev Previous commit
Next Next commit
📝 Update admonitions
  • Loading branch information
tiangolo committed Aug 6, 2024
commit c0588d41c860f7cf0636b15262ae19707612cea8
53 changes: 37 additions & 16 deletions docs/bn/docs/python-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 12,11 @@ Python-এ ঐচ্ছিক "টাইপ হিন্ট" (যা "টাই

তবে, আপনি যদি কখনো **FastAPI** ব্যবহার নাও করেন, তবুও এগুলি সম্পর্কে একটু শেখা আপনার উপকারে আসবে।

!!! Note
যদি আপনি একজন Python বিশেষজ্ঞ হন, এবং টাইপ হিন্ট সম্পর্কে সবকিছু জানেন, তাহলে পরবর্তী অধ্যায়ে চলে যান।
/// note

যদি আপনি একজন Python বিশেষজ্ঞ হন, এবং টাইপ হিন্ট সম্পর্কে সবকিছু জানেন, তাহলে পরবর্তী অধ্যায়ে চলে যান।

///

## প্রেরণা

Expand Down Expand Up @@ -204,15 207,21 @@ Python যত এগিয়ে যাচ্ছে, **নতুন সংস্

////

!!! Info
স্কোয়ার ব্রাকেট এর ভিতরে ব্যবহৃত এইসব অভন্তরীন টাইপগুলোকে "ইন্টারনাল টাইপ" বলে।
/// info

স্কোয়ার ব্রাকেট এর ভিতরে ব্যবহৃত এইসব অভন্তরীন টাইপগুলোকে "ইন্টারনাল টাইপ" বলে।

এই উদাহরণে, এটি হচ্ছে `List`(অথবা পাইথন ৩.৯ বা তার উপরের সংস্করণের ক্ষেত্রে `list`) এ পাস করা টাইপ প্যারামিটার।

এই উদাহরণে, এটি হচ্ছে `List`(অথবা পাইথন ৩.৯ বা তার উপরের সংস্করণের ক্ষেত্রে `list`) এ পাস করা টাইপ প্যারামিটার।
///

এর অর্থ হচ্ছে: "ভেরিয়েবল `items` একটি `list`, এবং এই লিস্টের প্রতিটি আইটেম একটি `str`।"

!!! Tip
যদি আপনি Python 3.9 বা তার উপরে ব্যবহার করেন, আপনার `typing` থেকে `List` আমদানি করতে হবে না, আপনি সাধারণ `list` ওই টাইপের পরিবর্তে ব্যবহার করতে পারেন।
/// tip

যদি আপনি Python 3.9 বা তার উপরে ব্যবহার করেন, আপনার `typing` থেকে `List` আমদানি করতে হবে না, আপনি সাধারণ `list` ওই টাইপের পরিবর্তে ব্যবহার করতে পারেন।

///

এর মাধ্যমে, আপনার এডিটর লিস্ট থেকে আইটেম প্রসেস করার সময় সাপোর্ট প্রদান করতে পারবে:

Expand Down Expand Up @@ -498,15 507,21 @@ Python 3.10-এ, `Union` এবং `Optional` জেনেরিকস ব্য

////

!!! Info
[Pydantic সম্পর্কে আরও জানতে, এর ডকুমেন্টেশন দেখুন](https://docs.pydantic.dev/)।
/// info

[Pydantic সম্পর্কে আরও জানতে, এর ডকুমেন্টেশন দেখুন](https://docs.pydantic.dev/)।

///

**FastAPI** মূলত Pydantic-এর উপর নির্মিত।

আপনি এই সমস্ত কিছুর অনেক বাস্তবসম্মত উদাহরণ পাবেন [টিউটোরিয়াল - ইউজার গাইডে](https://fastapi.tiangolo.com/tutorial/)।

!!! Tip
যখন আপনি `Optional` বা `Union[Something, None]` ব্যবহার করেন এবং কোনো ডিফল্ট মান না থাকে, Pydantic-এর একটি বিশেষ আচরণ রয়েছে, আপনি Pydantic ডকুমেন্টেশনে [Required Optional fields](https://docs.pydantic.dev/latest/concepts/models/#required-optional-fields) সম্পর্কে আরও পড়তে পারেন।
/// tip

যখন আপনি `Optional` বা `Union[Something, None]` ব্যবহার করেন এবং কোনো ডিফল্ট মান না থাকে, Pydantic-এর একটি বিশেষ আচরণ রয়েছে, আপনি Pydantic ডকুমেন্টেশনে [Required Optional fields](https://docs.pydantic.dev/latest/concepts/models/#required-optional-fields) সম্পর্কে আরও পড়তে পারেন।

///

## মেটাডাটা অ্যানোটেশন সহ টাইপ হিন্টস

Expand Down Expand Up @@ -544,10 559,13 @@ Python নিজে এই `Annotated` দিয়ে কিছুই করে

পরবর্তীতে আপনি দেখবেন এটি কতটা **শক্তিশালী** হতে পারে।

!!! Tip
এটি **স্ট্যান্ডার্ড Python** হওয়ার মানে হল আপনি আপনার এডিটরে, আপনি যে টুলগুলি কোড বিশ্লেষণ এবং রিফ্যাক্টর করার জন্য ব্যবহার করেন তাতে **সেরা সম্ভাব্য ডেভেলপার এক্সপেরিয়েন্স** পাবেন। ✨
/// tip

এটি **স্ট্যান্ডার্ড Python** হওয়ার মানে হল আপনি আপনার এডিটরে, আপনি যে টুলগুলি কোড বিশ্লেষণ এবং রিফ্যাক্টর করার জন্য ব্যবহার করেন তাতে **সেরা সম্ভাব্য ডেভেলপার এক্সপেরিয়েন্স** পাবেন। ✨

এবং এছাড়াও আপনার কোড অন্যান্য অনেক Python টুল এবং লাইব্রেরিগুলির সাথে খুব সামঞ্জস্যপূর্ণ হবে। 🚀
এবং এছাড়াও আপনার কোড অন্যান্য অনেক Python টুল এবং লাইব্রেরিগুলির সাথে খুব সামঞ্জস্যপূর্ণ হবে। 🚀

///

## **FastAPI**-এ টাইপ হিন্টস

Expand All @@ -571,5 589,8 @@ Python নিজে এই `Annotated` দিয়ে কিছুই করে

গুরুত্বপূর্ণ বিষয় হল, আপনি যদি স্ট্যান্ডার্ড Python টাইপগুলি ব্যবহার করেন, তবে আরও বেশি ক্লাস, ডেকোরেটর ইত্যাদি যোগ না করেই একই স্থানে **FastAPI** আপনার অনেক কাজ করে দিবে।

!!! Info
যদি আপনি টিউটোরিয়ালের সমস্ত বিষয় পড়ে ফেলে থাকেন এবং টাইপ সম্পর্কে আরও জানতে চান, তবে একটি ভালো রিসোর্স হল [mypy এর "cheat sheet"](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html)। এই "cheat sheet" এ আপনি Python টাইপ হিন্ট সম্পর্কে বেসিক থেকে উন্নত লেভেলের ধারণা পেতে পারেন, যা আপনার কোডে টাইপ সেফটি এবং স্পষ্টতা বাড়াতে সাহায্য করবে।
/// info

যদি আপনি টিউটোরিয়ালের সমস্ত বিষয় পড়ে ফেলে থাকেন এবং টাইপ সম্পর্কে আরও জানতে চান, তবে একটি ভালো রিসোর্স হল [mypy এর "cheat sheet"](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html)। এই "cheat sheet" এ আপনি Python টাইপ হিন্ট সম্পর্কে বেসিক থেকে উন্নত লেভেলের ধারণা পেতে পারেন, যা আপনার কোডে টাইপ সেফটি এবং স্পষ্টতা বাড়াতে সাহায্য করবে।

///
51 changes: 33 additions & 18 deletions docs/de/docs/advanced/additional-responses.md
Original file line number Diff line number Diff line change
@@ -1,9 1,12 @@
# Zusätzliche Responses in OpenAPI

!!! warning "Achtung"
Dies ist ein eher fortgeschrittenes Thema.
/// warning | "Achtung"

Wenn Sie mit **FastAPI** beginnen, benötigen Sie dies möglicherweise nicht.
Dies ist ein eher fortgeschrittenes Thema.

Wenn Sie mit **FastAPI** beginnen, benötigen Sie dies möglicherweise nicht.

///

Sie können zusätzliche Responses mit zusätzlichen Statuscodes, Medientypen, Beschreibungen, usw. deklarieren.

Expand All @@ -27,20 30,26 @@ Um beispielsweise eine weitere Response mit dem Statuscode `404` und einem Pydan
{!../../../docs_src/additional_responses/tutorial001.py!}
```

!!! note "Hinweis"
Beachten Sie, dass Sie die `JSONResponse` direkt zurückgeben müssen.
/// note | "Hinweis"

Beachten Sie, dass Sie die `JSONResponse` direkt zurückgeben müssen.

///

/// info

!!! info
Der `model`-Schlüssel ist nicht Teil von OpenAPI.
Der `model`-Schlüssel ist nicht Teil von OpenAPI.

**FastAPI** nimmt das Pydantic-Modell von dort, generiert das JSON-Schema und fügt es an der richtigen Stelle ein.
**FastAPI** nimmt das Pydantic-Modell von dort, generiert das JSON-Schema und fügt es an der richtigen Stelle ein.

Die richtige Stelle ist:
Die richtige Stelle ist:

* Im Schlüssel `content`, der als Wert ein weiteres JSON-Objekt (`dict`) hat, welches Folgendes enthält:
* Ein Schlüssel mit dem Medientyp, z. B. `application/json`, der als Wert ein weiteres JSON-Objekt hat, welches Folgendes enthält:
* Ein Schlüssel `schema`, der als Wert das JSON-Schema aus dem Modell hat, hier ist die richtige Stelle.
* **FastAPI** fügt hier eine Referenz auf die globalen JSON-Schemas an einer anderen Stelle in Ihrer OpenAPI hinzu, anstatt es direkt einzubinden. Auf diese Weise können andere Anwendungen und Clients diese JSON-Schemas direkt verwenden, bessere Tools zur Codegenerierung bereitstellen, usw.
* Im Schlüssel `content`, der als Wert ein weiteres JSON-Objekt (`dict`) hat, welches Folgendes enthält:
* Ein Schlüssel mit dem Medientyp, z. B. `application/json`, der als Wert ein weiteres JSON-Objekt hat, welches Folgendes enthält:
* Ein Schlüssel `schema`, der als Wert das JSON-Schema aus dem Modell hat, hier ist die richtige Stelle.
* **FastAPI** fügt hier eine Referenz auf die globalen JSON-Schemas an einer anderen Stelle in Ihrer OpenAPI hinzu, anstatt es direkt einzubinden. Auf diese Weise können andere Anwendungen und Clients diese JSON-Schemas direkt verwenden, bessere Tools zur Codegenerierung bereitstellen, usw.

///

Die generierten Responses in der OpenAPI für diese *Pfadoperation* lauten:

Expand Down Expand Up @@ -172,13 181,19 @@ Sie können beispielsweise einen zusätzlichen Medientyp `image/png` hinzufügen
{!../../../docs_src/additional_responses/tutorial002.py!}
```

!!! note "Hinweis"
Beachten Sie, dass Sie das Bild direkt mit einer `FileResponse` zurückgeben müssen.
/// note | "Hinweis"

Beachten Sie, dass Sie das Bild direkt mit einer `FileResponse` zurückgeben müssen.

///

/// info

Sofern Sie in Ihrem Parameter `responses` nicht explizit einen anderen Medientyp angeben, geht FastAPI davon aus, dass die Response denselben Medientyp wie die Haupt-Response-Klasse hat (Standardmäßig `application/json`).

!!! info
Sofern Sie in Ihrem Parameter `responses` nicht explizit einen anderen Medientyp angeben, geht FastAPI davon aus, dass die Response denselben Medientyp wie die Haupt-Response-Klasse hat (Standardmäßig `application/json`).
Wenn Sie jedoch eine benutzerdefinierte Response-Klasse mit `None` als Medientyp angegeben haben, verwendet FastAPI `application/json` für jede zusätzliche Response, die über ein zugehöriges Modell verfügt.

Wenn Sie jedoch eine benutzerdefinierte Response-Klasse mit `None` als Medientyp angegeben haben, verwendet FastAPI `application/json` für jede zusätzliche Response, die über ein zugehöriges Modell verfügt.
///

## Informationen kombinieren

Expand Down
34 changes: 23 additions & 11 deletions docs/de/docs/advanced/additional-status-codes.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 40,11 @@ Um dies zu erreichen, importieren Sie `JSONResponse`, und geben Sie Ihren Inhalt

//// tab | Python 3.10 nicht annotiert

!!! tip "Tipp"
Bevorzugen Sie die `Annotated`-Version, falls möglich.
/// tip | "Tipp"

Bevorzugen Sie die `Annotated`-Version, falls möglich.

///

```Python hl_lines="2 23"
{!> ../../../docs_src/additional_status_codes/tutorial001_py310.py!}
Expand All @@ -51,26 54,35 @@ Um dies zu erreichen, importieren Sie `JSONResponse`, und geben Sie Ihren Inhalt

//// tab | Python 3.8 nicht annotiert

!!! tip "Tipp"
Bevorzugen Sie die `Annotated`-Version, falls möglich.
/// tip | "Tipp"

Bevorzugen Sie die `Annotated`-Version, falls möglich.

///

```Python hl_lines="4 25"
{!> ../../../docs_src/additional_status_codes/tutorial001.py!}
```

////

!!! warning "Achtung"
Wenn Sie eine `Response` direkt zurückgeben, wie im obigen Beispiel, wird sie direkt zurückgegeben.
/// warning | "Achtung"

Wenn Sie eine `Response` direkt zurückgeben, wie im obigen Beispiel, wird sie direkt zurückgegeben.

Sie wird nicht mit einem Modell usw. serialisiert.

Stellen Sie sicher, dass sie die gewünschten Daten enthält und dass die Werte gültiges JSON sind (wenn Sie `JSONResponse` verwenden).

///

Sie wird nicht mit einem Modell usw. serialisiert.
/// note | "Technische Details"

Stellen Sie sicher, dass sie die gewünschten Daten enthält und dass die Werte gültiges JSON sind (wenn Sie `JSONResponse` verwenden).
Sie können auch `from starlette.responses import JSONResponse` verwenden.

!!! note "Technische Details"
Sie können auch `from starlette.responses import JSONResponse` verwenden.
**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. Das Gleiche gilt für `status`.

**FastAPI** bietet dieselben `starlette.responses` auch via `fastapi.responses` an, als Annehmlichkeit für Sie, den Entwickler. Die meisten verfügbaren Responses kommen aber direkt von Starlette. Das Gleiche gilt für `status`.
///

## OpenAPI- und API-Dokumentation

Expand Down
41 changes: 28 additions & 13 deletions docs/de/docs/advanced/advanced-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 36,11 @@ Dazu deklarieren wir eine Methode `__call__`:

//// tab | Python 3.8 nicht annotiert

!!! tip "Tipp"
Bevorzugen Sie die `Annotated`-Version, falls möglich.
/// tip | "Tipp"

Bevorzugen Sie die `Annotated`-Version, falls möglich.

///

```Python hl_lines="10"
{!> ../../../docs_src/dependencies/tutorial011.py!}
Expand Down Expand Up @@ -69,8 72,11 @@ Und jetzt können wir `__init__` verwenden, um die Parameter der Instanz zu dekl

//// tab | Python 3.8 nicht annotiert

!!! tip "Tipp"
Bevorzugen Sie die `Annotated`-Version, falls möglich.
/// tip | "Tipp"

Bevorzugen Sie die `Annotated`-Version, falls möglich.

///

```Python hl_lines="7"
{!> ../../../docs_src/dependencies/tutorial011.py!}
Expand Down Expand Up @@ -102,8 108,11 @@ Wir könnten eine Instanz dieser Klasse erstellen mit:

//// tab | Python 3.8 nicht annotiert

!!! tip "Tipp"
Bevorzugen Sie die `Annotated`-Version, falls möglich.
/// tip | "Tipp"

Bevorzugen Sie die `Annotated`-Version, falls möglich.

///

```Python hl_lines="16"
{!> ../../../docs_src/dependencies/tutorial011.py!}
Expand Down Expand Up @@ -143,20 152,26 @@ checker(q="somequery")

//// tab | Python 3.8 nicht annotiert

!!! tip "Tipp"
Bevorzugen Sie die `Annotated`-Version, falls möglich.
/// tip | "Tipp"

Bevorzugen Sie die `Annotated`-Version, falls möglich.

///

```Python hl_lines="20"
{!> ../../../docs_src/dependencies/tutorial011.py!}
```

////

!!! tip "Tipp"
Das alles mag gekünstelt wirken. Und es ist möglicherweise noch nicht ganz klar, welchen Nutzen das hat.
/// tip | "Tipp"

Das alles mag gekünstelt wirken. Und es ist möglicherweise noch nicht ganz klar, welchen Nutzen das hat.

Diese Beispiele sind bewusst einfach gehalten, zeigen aber, wie alles funktioniert.

Diese Beispiele sind bewusst einfach gehalten, zeigen aber, wie alles funktioniert.
In den Kapiteln zum Thema Sicherheit gibt es Hilfsfunktionen, die auf die gleiche Weise implementiert werden.

In den Kapiteln zum Thema Sicherheit gibt es Hilfsfunktionen, die auf die gleiche Weise implementiert werden.
Wenn Sie das hier alles verstanden haben, wissen Sie bereits, wie diese Sicherheits-Hilfswerkzeuge unter der Haube funktionieren.

Wenn Sie das hier alles verstanden haben, wissen Sie bereits, wie diese Sicherheits-Hilfswerkzeuge unter der Haube funktionieren.
///
Loading