Browse Source

📝 Fix admonition double quotes with new syntax (#12835)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
pull/12841/head
Sebastián Ramírez 5 months ago
committed by GitHub
parent
commit
7fb9c5922d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      docs/de/docs/advanced/additional-responses.md
  2. 8
      docs/de/docs/advanced/additional-status-codes.md
  3. 10
      docs/de/docs/advanced/advanced-dependencies.md
  4. 8
      docs/de/docs/advanced/async-tests.md
  5. 14
      docs/de/docs/advanced/behind-a-proxy.md
  6. 16
      docs/de/docs/advanced/custom-response.md
  7. 6
      docs/de/docs/advanced/events.md
  8. 2
      docs/de/docs/advanced/generate-clients.md
  9. 2
      docs/de/docs/advanced/index.md
  10. 2
      docs/de/docs/advanced/middleware.md
  11. 10
      docs/de/docs/advanced/openapi-callbacks.md
  12. 12
      docs/de/docs/advanced/path-operation-advanced-configuration.md
  13. 4
      docs/de/docs/advanced/response-cookies.md
  14. 4
      docs/de/docs/advanced/response-directly.md
  15. 2
      docs/de/docs/advanced/response-headers.md
  16. 2
      docs/de/docs/advanced/security/index.md
  17. 60
      docs/de/docs/advanced/security/oauth2-scopes.md
  18. 28
      docs/de/docs/advanced/settings.md
  19. 6
      docs/de/docs/advanced/templates.md
  20. 8
      docs/de/docs/advanced/testing-dependencies.md
  21. 2
      docs/de/docs/advanced/testing-websockets.md
  22. 4
      docs/de/docs/advanced/using-request-directly.md
  23. 10
      docs/de/docs/advanced/websockets.md
  24. 40
      docs/de/docs/alternatives.md
  25. 2
      docs/de/docs/async.md
  26. 18
      docs/de/docs/contributing.md
  27. 8
      docs/de/docs/deployment/concepts.md
  28. 16
      docs/de/docs/deployment/docker.md
  29. 6
      docs/de/docs/deployment/https.md
  30. 4
      docs/de/docs/deployment/manually.md
  31. 4
      docs/de/docs/deployment/versions.md
  32. 2
      docs/de/docs/help-fastapi.md
  33. 4
      docs/de/docs/how-to/custom-docs-ui-assets.md
  34. 8
      docs/de/docs/how-to/custom-request-and-route.md
  35. 4
      docs/de/docs/how-to/graphql.md
  36. 2
      docs/de/docs/how-to/index.md
  37. 10
      docs/de/docs/python-types.md
  38. 4
      docs/de/docs/tutorial/background-tasks.md
  39. 20
      docs/de/docs/tutorial/bigger-applications.md
  40. 16
      docs/de/docs/tutorial/body-fields.md
  41. 4
      docs/de/docs/tutorial/body-multiple-params.md
  42. 2
      docs/de/docs/tutorial/body-nested-models.md
  43. 6
      docs/de/docs/tutorial/body-updates.md
  44. 4
      docs/de/docs/tutorial/body.md
  45. 10
      docs/de/docs/tutorial/cookie-params.md
  46. 42
      docs/de/docs/tutorial/dependencies/classes-as-dependencies.md
  47. 10
      docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
  48. 26
      docs/de/docs/tutorial/dependencies/dependencies-with-yield.md
  49. 2
      docs/de/docs/tutorial/dependencies/global-dependencies.md
  50. 18
      docs/de/docs/tutorial/dependencies/index.md
  51. 16
      docs/de/docs/tutorial/dependencies/sub-dependencies.md
  52. 2
      docs/de/docs/tutorial/encoder.md
  53. 6
      docs/de/docs/tutorial/extra-models.md
  54. 10
      docs/de/docs/tutorial/first-steps.md
  55. 8
      docs/de/docs/tutorial/handling-errors.md
  56. 22
      docs/de/docs/tutorial/header-params.md
  57. 2
      docs/de/docs/tutorial/index.md
  58. 4
      docs/de/docs/tutorial/metadata.md
  59. 6
      docs/de/docs/tutorial/middleware.md
  60. 4
      docs/de/docs/tutorial/path-operation-configuration.md
  61. 24
      docs/de/docs/tutorial/path-params-numeric-validations.md
  62. 6
      docs/de/docs/tutorial/path-params.md
  63. 68
      docs/de/docs/tutorial/query-params-str-validations.md
  64. 2
      docs/de/docs/tutorial/query-params.md
  65. 32
      docs/de/docs/tutorial/request-files.md
  66. 6
      docs/de/docs/tutorial/request-forms-and-files.md
  67. 10
      docs/de/docs/tutorial/request-forms.md
  68. 12
      docs/de/docs/tutorial/response-model.md
  69. 10
      docs/de/docs/tutorial/response-status-code.md
  70. 6
      docs/de/docs/tutorial/schema-extra-example.md
  71. 14
      docs/de/docs/tutorial/security/first-steps.md
  72. 24
      docs/de/docs/tutorial/security/get-current-user.md
  73. 4
      docs/de/docs/tutorial/security/index.md
  74. 26
      docs/de/docs/tutorial/security/oauth2-jwt.md
  75. 28
      docs/de/docs/tutorial/security/simple-oauth2.md
  76. 2
      docs/de/docs/tutorial/static-files.md
  77. 10
      docs/de/docs/tutorial/testing.md
  78. 2
      docs/em/docs/advanced/additional-status-codes.md
  79. 2
      docs/em/docs/advanced/behind-a-proxy.md
  80. 2
      docs/em/docs/advanced/custom-response.md
  81. 2
      docs/em/docs/advanced/middleware.md
  82. 2
      docs/em/docs/advanced/path-operation-advanced-configuration.md
  83. 2
      docs/em/docs/advanced/response-cookies.md
  84. 2
      docs/em/docs/advanced/response-directly.md
  85. 2
      docs/em/docs/advanced/response-headers.md
  86. 2
      docs/em/docs/advanced/security/oauth2-scopes.md
  87. 2
      docs/em/docs/advanced/templates.md
  88. 2
      docs/em/docs/advanced/using-request-directly.md
  89. 2
      docs/em/docs/advanced/websockets.md
  90. 38
      docs/em/docs/alternatives.md
  91. 2
      docs/em/docs/how-to/custom-request-and-route.md
  92. 4
      docs/em/docs/tutorial/bigger-applications.md
  93. 2
      docs/em/docs/tutorial/body-fields.md
  94. 2
      docs/em/docs/tutorial/cookie-params.md
  95. 2
      docs/em/docs/tutorial/cors.md
  96. 4
      docs/em/docs/tutorial/dependencies/dependencies-with-yield.md
  97. 4
      docs/em/docs/tutorial/first-steps.md
  98. 4
      docs/em/docs/tutorial/handling-errors.md
  99. 2
      docs/em/docs/tutorial/header-params.md
  100. 4
      docs/em/docs/tutorial/middleware.md

6
docs/de/docs/advanced/additional-responses.md

@ -1,6 +1,6 @@
# Zusätzliche Responses in OpenAPI # Zusätzliche Responses in OpenAPI
/// warning | "Achtung" /// warning | Achtung
Dies ist ein eher fortgeschrittenes Thema. Dies ist ein eher fortgeschrittenes Thema.
@ -30,7 +30,7 @@ Um beispielsweise eine weitere Response mit dem Statuscode `404` und einem Pydan
{!../../docs_src/additional_responses/tutorial001.py!} {!../../docs_src/additional_responses/tutorial001.py!}
``` ```
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass Sie die `JSONResponse` direkt zurückgeben müssen. Beachten Sie, dass Sie die `JSONResponse` direkt zurückgeben müssen.
@ -181,7 +181,7 @@ Sie können beispielsweise einen zusätzlichen Medientyp `image/png` hinzufügen
{!../../docs_src/additional_responses/tutorial002.py!} {!../../docs_src/additional_responses/tutorial002.py!}
``` ```
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass Sie das Bild direkt mit einer `FileResponse` zurückgeben müssen. Beachten Sie, dass Sie das Bild direkt mit einer `FileResponse` zurückgeben müssen.

8
docs/de/docs/advanced/additional-status-codes.md

@ -40,7 +40,7 @@ Um dies zu erreichen, importieren Sie `JSONResponse`, und geben Sie Ihren Inhalt
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -54,7 +54,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -66,7 +66,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// warning | "Achtung" /// warning | Achtung
Wenn Sie eine `Response` direkt zurückgeben, wie im obigen Beispiel, wird sie direkt zurückgegeben. Wenn Sie eine `Response` direkt zurückgeben, wie im obigen Beispiel, wird sie direkt zurückgegeben.
@ -76,7 +76,7 @@ Stellen Sie sicher, dass sie die gewünschten Daten enthält und dass die Werte
/// ///
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import JSONResponse` verwenden. Sie können auch `from starlette.responses import JSONResponse` verwenden.

10
docs/de/docs/advanced/advanced-dependencies.md

@ -36,7 +36,7 @@ Dazu deklarieren wir eine Methode `__call__`:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -72,7 +72,7 @@ Und jetzt können wir `__init__` verwenden, um die Parameter der Instanz zu dekl
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -108,7 +108,7 @@ Wir könnten eine Instanz dieser Klasse erstellen mit:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -152,7 +152,7 @@ checker(q="somequery")
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -164,7 +164,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Das alles mag gekünstelt wirken. Und es ist möglicherweise noch nicht ganz klar, welchen Nutzen das hat. Das alles mag gekünstelt wirken. Und es ist möglicherweise noch nicht ganz klar, welchen Nutzen das hat.

8
docs/de/docs/advanced/async-tests.md

@ -62,7 +62,7 @@ Der Marker `@pytest.mark.anyio` teilt pytest mit, dass diese Testfunktion asynch
{* ../../docs_src/async_tests/test_main.py hl[7] *} {* ../../docs_src/async_tests/test_main.py hl[7] *}
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass die Testfunktion jetzt `async def` ist und nicht nur `def` wie zuvor, wenn Sie den `TestClient` verwenden. Beachten Sie, dass die Testfunktion jetzt `async def` ist und nicht nur `def` wie zuvor, wenn Sie den `TestClient` verwenden.
@ -80,13 +80,13 @@ response = client.get('/')
... welches wir verwendet haben, um unsere Requests mit dem `TestClient` zu machen. ... welches wir verwendet haben, um unsere Requests mit dem `TestClient` zu machen.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass wir async/await mit dem neuen `AsyncClient` verwenden – der Request ist asynchron. Beachten Sie, dass wir async/await mit dem neuen `AsyncClient` verwenden – der Request ist asynchron.
/// ///
/// warning | "Achtung" /// warning | Achtung
Falls Ihre Anwendung auf Lifespan-Events angewiesen ist, der `AsyncClient` löst diese Events nicht aus. Um sicherzustellen, dass sie ausgelöst werden, verwenden Sie `LifespanManager` von <a href="https://github.com/florimondmanca/asgi-lifespan#usage" class="external-link" target="_blank">florimondmanca/asgi-lifespan</a>. Falls Ihre Anwendung auf Lifespan-Events angewiesen ist, der `AsyncClient` löst diese Events nicht aus. Um sicherzustellen, dass sie ausgelöst werden, verwenden Sie `LifespanManager` von <a href="https://github.com/florimondmanca/asgi-lifespan#usage" class="external-link" target="_blank">florimondmanca/asgi-lifespan</a>.
@ -96,7 +96,7 @@ Falls Ihre Anwendung auf Lifespan-Events angewiesen ist, der `AsyncClient` löst
Da die Testfunktion jetzt asynchron ist, können Sie in Ihren Tests neben dem Senden von Requests an Ihre FastAPI-Anwendung jetzt auch andere `async`hrone Funktionen aufrufen (und `await`en), genau so, wie Sie diese an anderer Stelle in Ihrem Code aufrufen würden. Da die Testfunktion jetzt asynchron ist, können Sie in Ihren Tests neben dem Senden von Requests an Ihre FastAPI-Anwendung jetzt auch andere `async`hrone Funktionen aufrufen (und `await`en), genau so, wie Sie diese an anderer Stelle in Ihrem Code aufrufen würden.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie einen `RuntimeError: Task attached to a different loop` erhalten, wenn Sie asynchrone Funktionsaufrufe in Ihre Tests integrieren (z. B. bei Verwendung von <a href="https://stackoverflow.com/questions/41584243/runtimeerror-task-attached-to-a-different-loop" class="external-link" target="_blank">MongoDBs MotorClient</a>), dann denken Sie daran, Objekte zu instanziieren, die einen Event Loop nur innerhalb asynchroner Funktionen benötigen, z. B. einen `@app.on_event("startup")`-Callback. Wenn Sie einen `RuntimeError: Task attached to a different loop` erhalten, wenn Sie asynchrone Funktionsaufrufe in Ihre Tests integrieren (z. B. bei Verwendung von <a href="https://stackoverflow.com/questions/41584243/runtimeerror-task-attached-to-a-different-loop" class="external-link" target="_blank">MongoDBs MotorClient</a>), dann denken Sie daran, Objekte zu instanziieren, die einen Event Loop nur innerhalb asynchroner Funktionen benötigen, z. B. einen `@app.on_event("startup")`-Callback.

14
docs/de/docs/advanced/behind-a-proxy.md

@ -43,7 +43,7 @@ browser --> proxy
proxy --> server proxy --> server
``` ```
/// tip | "Tipp" /// tip | Tipp
Die IP `0.0.0.0` wird üblicherweise verwendet, um anzudeuten, dass das Programm alle auf diesem Computer/Server verfügbaren IPs abhört. Die IP `0.0.0.0` wird üblicherweise verwendet, um anzudeuten, dass das Programm alle auf diesem Computer/Server verfügbaren IPs abhört.
@ -84,7 +84,7 @@ $ uvicorn main:app --root-path /api/v1
Falls Sie Hypercorn verwenden, das hat auch die Option `--root-path`. Falls Sie Hypercorn verwenden, das hat auch die Option `--root-path`.
/// note | "Technische Details" /// note | Technische Details
Die ASGI-Spezifikation definiert einen `root_path` für diesen Anwendungsfall. Die ASGI-Spezifikation definiert einen `root_path` für diesen Anwendungsfall.
@ -178,7 +178,7 @@ Dann erstellen Sie eine Datei `traefik.toml` mit:
Dadurch wird Traefik angewiesen, Port 9999 abzuhören und eine andere Datei `routes.toml` zu verwenden. Dadurch wird Traefik angewiesen, Port 9999 abzuhören und eine andere Datei `routes.toml` zu verwenden.
/// tip | "Tipp" /// tip | Tipp
Wir verwenden Port 9999 anstelle des Standard-HTTP-Ports 80, damit Sie ihn nicht mit Administratorrechten (`sudo`) ausführen müssen. Wir verwenden Port 9999 anstelle des Standard-HTTP-Ports 80, damit Sie ihn nicht mit Administratorrechten (`sudo`) ausführen müssen.
@ -248,7 +248,7 @@ Wenn Sie nun zur URL mit dem Port für Uvicorn gehen: <a href="http://127.0.0.1:
} }
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass, obwohl Sie unter `http://127.0.0.1:8000/app` darauf zugreifen, als `root_path` angezeigt wird `/api/v1`, welches aus der Option `--root-path` stammt. Beachten Sie, dass, obwohl Sie unter `http://127.0.0.1:8000/app` darauf zugreifen, als `root_path` angezeigt wird `/api/v1`, welches aus der Option `--root-path` stammt.
@ -295,7 +295,7 @@ Dies liegt daran, dass FastAPI diesen `root_path` verwendet, um den Default-`ser
## Zusätzliche Server ## Zusätzliche Server
/// warning | "Achtung" /// warning | Achtung
Dies ist ein fortgeschrittener Anwendungsfall. Überspringen Sie das gerne. Dies ist ein fortgeschrittener Anwendungsfall. Überspringen Sie das gerne.
@ -338,7 +338,7 @@ Erzeugt ein OpenAPI-Schema, wie:
} }
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie den automatisch generierten Server mit dem `URL`-Wert `/api/v1`, welcher vom `root_path` stammt. Beachten Sie den automatisch generierten Server mit dem `URL`-Wert `/api/v1`, welcher vom `root_path` stammt.
@ -348,7 +348,7 @@ In der Dokumentationsoberfläche unter <a href="http://127.0.0.1:9999/api/v1/doc
<img src="/img/tutorial/behind-a-proxy/image03.png"> <img src="/img/tutorial/behind-a-proxy/image03.png">
/// tip | "Tipp" /// tip | Tipp
Die Dokumentationsoberfläche interagiert mit dem von Ihnen ausgewählten Server. Die Dokumentationsoberfläche interagiert mit dem von Ihnen ausgewählten Server.

16
docs/de/docs/advanced/custom-response.md

@ -12,7 +12,7 @@ Der Inhalt, den Sie von Ihrer *Pfadoperation-Funktion* zurückgeben, wird in die
Und wenn diese `Response` einen JSON-Medientyp (`application/json`) hat, wie es bei `JSONResponse` und `UJSONResponse` der Fall ist, werden die von Ihnen zurückgegebenen Daten automatisch mit jedem Pydantic `response_model` konvertiert (und gefiltert), das Sie im *Pfadoperation-Dekorator* deklariert haben. Und wenn diese `Response` einen JSON-Medientyp (`application/json`) hat, wie es bei `JSONResponse` und `UJSONResponse` der Fall ist, werden die von Ihnen zurückgegebenen Daten automatisch mit jedem Pydantic `response_model` konvertiert (und gefiltert), das Sie im *Pfadoperation-Dekorator* deklariert haben.
/// note | "Hinweis" /// note | Hinweis
Wenn Sie eine Response-Klasse ohne Medientyp verwenden, erwartet FastAPI, dass Ihre Response keinen Inhalt hat, und dokumentiert daher das Format der Response nicht in deren generierter OpenAPI-Dokumentation. Wenn Sie eine Response-Klasse ohne Medientyp verwenden, erwartet FastAPI, dass Ihre Response keinen Inhalt hat, und dokumentiert daher das Format der Response nicht in deren generierter OpenAPI-Dokumentation.
@ -44,7 +44,7 @@ Und er wird als solcher in OpenAPI dokumentiert.
/// ///
/// tip | "Tipp" /// tip | Tipp
Die `ORJSONResponse` ist derzeit nur in FastAPI verfügbar, nicht in Starlette. Die `ORJSONResponse` ist derzeit nur in FastAPI verfügbar, nicht in Starlette.
@ -81,7 +81,7 @@ Das gleiche Beispiel von oben, das eine `HTMLResponse` zurückgibt, könnte so a
{!../../docs_src/custom_response/tutorial003.py!} {!../../docs_src/custom_response/tutorial003.py!}
``` ```
/// warning | "Achtung" /// warning | Achtung
Eine `Response`, die direkt von Ihrer *Pfadoperation-Funktion* zurückgegeben wird, wird in OpenAPI nicht dokumentiert (zum Beispiel wird der `Content-Type` nicht dokumentiert) und ist in der automatischen interaktiven Dokumentation nicht sichtbar. Eine `Response`, die direkt von Ihrer *Pfadoperation-Funktion* zurückgegeben wird, wird in OpenAPI nicht dokumentiert (zum Beispiel wird der `Content-Type` nicht dokumentiert) und ist in der automatischen interaktiven Dokumentation nicht sichtbar.
@ -121,7 +121,7 @@ Hier sind einige der verfügbaren Responses.
Bedenken Sie, dass Sie `Response` verwenden können, um alles andere zurückzugeben, oder sogar eine benutzerdefinierte Unterklasse zu erstellen. Bedenken Sie, dass Sie `Response` verwenden können, um alles andere zurückzugeben, oder sogar eine benutzerdefinierte Unterklasse zu erstellen.
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import HTMLResponse` verwenden. Sie können auch `from starlette.responses import HTMLResponse` verwenden.
@ -174,7 +174,7 @@ Eine schnelle alternative JSON-Response mit <a href="https://github.com/ijl/orjs
Eine alternative JSON-Response mit <a href="https://github.com/ultrajson/ultrajson" class="external-link" target="_blank">`ujson`</a>. Eine alternative JSON-Response mit <a href="https://github.com/ultrajson/ultrajson" class="external-link" target="_blank">`ujson`</a>.
/// warning | "Achtung" /// warning | Achtung
`ujson` ist bei der Behandlung einiger Sonderfälle weniger sorgfältig als Pythons eingebaute Implementierung. `ujson` ist bei der Behandlung einiger Sonderfälle weniger sorgfältig als Pythons eingebaute Implementierung.
@ -184,7 +184,7 @@ Eine alternative JSON-Response mit <a href="https://github.com/ultrajson/ultrajs
{!../../docs_src/custom_response/tutorial001.py!} {!../../docs_src/custom_response/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Möglicherweise ist `ORJSONResponse` eine schnellere Alternative. Möglicherweise ist `ORJSONResponse` eine schnellere Alternative.
@ -249,7 +249,7 @@ Das umfasst viele Bibliotheken zur Interaktion mit Cloud-Speicher, Videoverarbei
Auf diese Weise können wir das Ganze in einen `with`-Block einfügen und so sicherstellen, dass das dateiartige Objekt nach Abschluss geschlossen wird. Auf diese Weise können wir das Ganze in einen `with`-Block einfügen und so sicherstellen, dass das dateiartige Objekt nach Abschluss geschlossen wird.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass wir, da wir Standard-`open()` verwenden, welches `async` und `await` nicht unterstützt, hier die Pfadoperation mit normalen `def` deklarieren. Beachten Sie, dass wir, da wir Standard-`open()` verwenden, welches `async` und `await` nicht unterstützt, hier die Pfadoperation mit normalen `def` deklarieren.
@ -322,7 +322,7 @@ Im folgenden Beispiel verwendet **FastAPI** standardmäßig `ORJSONResponse` in
{!../../docs_src/custom_response/tutorial010.py!} {!../../docs_src/custom_response/tutorial010.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Sie können dennoch weiterhin `response_class` in *Pfadoperationen* überschreiben, wie bisher. Sie können dennoch weiterhin `response_class` in *Pfadoperationen* überschreiben, wie bisher.

6
docs/de/docs/advanced/events.md

@ -38,7 +38,7 @@ Hier simulieren wir das langsame *Hochfahren*, das Laden des Modells, indem wir
Und dann, direkt nach dem `yield`, entladen wir das Modell. Dieser Code wird unmittelbar vor dem *Herunterfahren* ausgeführt, **nachdem** die Anwendung **die Bearbeitung von Requests abgeschlossen hat**. Dadurch könnten beispielsweise Ressourcen wie Arbeitsspeicher oder eine GPU freigegeben werden. Und dann, direkt nach dem `yield`, entladen wir das Modell. Dieser Code wird unmittelbar vor dem *Herunterfahren* ausgeführt, **nachdem** die Anwendung **die Bearbeitung von Requests abgeschlossen hat**. Dadurch könnten beispielsweise Ressourcen wie Arbeitsspeicher oder eine GPU freigegeben werden.
/// tip | "Tipp" /// tip | Tipp
Das *Herunterfahren* würde erfolgen, wenn Sie die Anwendung **stoppen**. Das *Herunterfahren* würde erfolgen, wenn Sie die Anwendung **stoppen**.
@ -94,7 +94,7 @@ Der Parameter `lifespan` der `FastAPI`-App benötigt einen **asynchronen Kontext
## Alternative Events (deprecated) ## Alternative Events (deprecated)
/// warning | "Achtung" /// warning | Achtung
Der empfohlene Weg, das *Hochfahren* und *Herunterfahren* zu handhaben, ist die Verwendung des `lifespan`-Parameters der `FastAPI`-App, wie oben beschrieben. Wenn Sie einen `lifespan`-Parameter übergeben, werden die `startup`- und `shutdown`-Eventhandler nicht mehr aufgerufen. Es ist entweder alles `lifespan` oder alles Events, nicht beides. Der empfohlene Weg, das *Hochfahren* und *Herunterfahren* zu handhaben, ist die Verwendung des `lifespan`-Parameters der `FastAPI`-App, wie oben beschrieben. Wenn Sie einen `lifespan`-Parameter übergeben, werden die `startup`- und `shutdown`-Eventhandler nicht mehr aufgerufen. Es ist entweder alles `lifespan` oder alles Events, nicht beides.
@ -138,7 +138,7 @@ In der Funktion `open()` bedeutet `mode="a"` „append“ („anhängen“), sod
/// ///
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass wir in diesem Fall eine Standard-Python-Funktion `open()` verwenden, die mit einer Datei interagiert. Beachten Sie, dass wir in diesem Fall eine Standard-Python-Funktion `open()` verwenden, die mit einer Datei interagiert.

2
docs/de/docs/advanced/generate-clients.md

@ -127,7 +127,7 @@ Sie erhalten außerdem automatische Vervollständigung für die zu sendende Payl
<img src="/img/tutorial/generate-clients/image03.png"> <img src="/img/tutorial/generate-clients/image03.png">
/// tip | "Tipp" /// tip | Tipp
Beachten Sie die automatische Vervollständigung für `name` und `price`, welche in der FastAPI-Anwendung im `Item`-Modell definiert wurden. Beachten Sie die automatische Vervollständigung für `name` und `price`, welche in der FastAPI-Anwendung im `Item`-Modell definiert wurden.

2
docs/de/docs/advanced/index.md

@ -6,7 +6,7 @@ Das Haupt-[Tutorial – Benutzerhandbuch](../tutorial/index.md){.internal-link t
In den nächsten Abschnitten sehen Sie weitere Optionen, Konfigurationen und zusätzliche Funktionen. In den nächsten Abschnitten sehen Sie weitere Optionen, Konfigurationen und zusätzliche Funktionen.
/// tip | "Tipp" /// tip | Tipp
Die nächsten Abschnitte sind **nicht unbedingt „fortgeschritten“**. Die nächsten Abschnitte sind **nicht unbedingt „fortgeschritten“**.

2
docs/de/docs/advanced/middleware.md

@ -43,7 +43,7 @@ app.add_middleware(UnicornMiddleware, some_config="rainbow")
**FastAPI** enthält mehrere Middlewares für gängige Anwendungsfälle. Wir werden als Nächstes sehen, wie man sie verwendet. **FastAPI** enthält mehrere Middlewares für gängige Anwendungsfälle. Wir werden als Nächstes sehen, wie man sie verwendet.
/// note | "Technische Details" /// note | Technische Details
Für die nächsten Beispiele könnten Sie auch `from starlette.middleware.something import SomethingMiddleware` verwenden. Für die nächsten Beispiele könnten Sie auch `from starlette.middleware.something import SomethingMiddleware` verwenden.

10
docs/de/docs/advanced/openapi-callbacks.md

@ -35,7 +35,7 @@ Dieser Teil ist ziemlich normal, der größte Teil des Codes ist Ihnen wahrschei
{!../../docs_src/openapi_callbacks/tutorial001.py!} {!../../docs_src/openapi_callbacks/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Der Query-Parameter `callback_url` verwendet einen Pydantic-<a href="https://docs.pydantic.dev/latest/api/networks/" class="external-link" target="_blank">Url</a>-Typ. Der Query-Parameter `callback_url` verwendet einen Pydantic-<a href="https://docs.pydantic.dev/latest/api/networks/" class="external-link" target="_blank">Url</a>-Typ.
@ -64,7 +64,7 @@ Diese Dokumentation wird in der Swagger-Oberfläche unter `/docs` in Ihrer API a
In diesem Beispiel wird nicht der Callback selbst implementiert (das könnte nur eine Codezeile sein), sondern nur der Dokumentationsteil. In diesem Beispiel wird nicht der Callback selbst implementiert (das könnte nur eine Codezeile sein), sondern nur der Dokumentationsteil.
/// tip | "Tipp" /// tip | Tipp
Der eigentliche Callback ist nur ein HTTP-Request. Der eigentliche Callback ist nur ein HTTP-Request.
@ -80,7 +80,7 @@ Sie wissen jedoch bereits, wie Sie mit **FastAPI** ganz einfach eine automatisch
Daher werden wir dasselbe Wissen nutzen, um zu dokumentieren, wie die *externe API* aussehen sollte ... indem wir die *Pfadoperation(en)* erstellen, welche die externe API implementieren soll (die, welche Ihre API aufruft). Daher werden wir dasselbe Wissen nutzen, um zu dokumentieren, wie die *externe API* aussehen sollte ... indem wir die *Pfadoperation(en)* erstellen, welche die externe API implementieren soll (die, welche Ihre API aufruft).
/// tip | "Tipp" /// tip | Tipp
Wenn Sie den Code zum Dokumentieren eines Callbacks schreiben, kann es hilfreich sein, sich vorzustellen, dass Sie dieser *externe Entwickler* sind. Und dass Sie derzeit die *externe API* implementieren, nicht *Ihre API*. Wenn Sie den Code zum Dokumentieren eines Callbacks schreiben, kann es hilfreich sein, sich vorzustellen, dass Sie dieser *externe Entwickler* sind. Und dass Sie derzeit die *externe API* implementieren, nicht *Ihre API*.
@ -163,7 +163,7 @@ und sie würde eine Response von dieser *externen API* mit einem JSON-Body wie d
} }
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass die verwendete Callback-URL die URL enthält, die als Query-Parameter in `callback_url` (`https://www.external.org/events`) empfangen wurde, und auch die Rechnungs-`id` aus dem JSON-Body (`2expen51ve`). Beachten Sie, dass die verwendete Callback-URL die URL enthält, die als Query-Parameter in `callback_url` (`https://www.external.org/events`) empfangen wurde, und auch die Rechnungs-`id` aus dem JSON-Body (`2expen51ve`).
@ -179,7 +179,7 @@ Verwenden Sie nun den Parameter `callbacks` im *Pfadoperation-Dekorator Ihrer AP
{!../../docs_src/openapi_callbacks/tutorial001.py!} {!../../docs_src/openapi_callbacks/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass Sie nicht den Router selbst (`invoices_callback_router`) an `callback=` übergeben, sondern das Attribut `.routes`, wie in `invoices_callback_router.routes`. Beachten Sie, dass Sie nicht den Router selbst (`invoices_callback_router`) an `callback=` übergeben, sondern das Attribut `.routes`, wie in `invoices_callback_router.routes`.

12
docs/de/docs/advanced/path-operation-advanced-configuration.md

@ -2,7 +2,7 @@
## OpenAPI operationId ## OpenAPI operationId
/// warning | "Achtung" /// warning | Achtung
Wenn Sie kein „Experte“ für OpenAPI sind, brauchen Sie dies wahrscheinlich nicht. Wenn Sie kein „Experte“ für OpenAPI sind, brauchen Sie dies wahrscheinlich nicht.
@ -26,13 +26,13 @@ Sie sollten dies tun, nachdem Sie alle Ihre *Pfadoperationen* hinzugefügt haben
{!../../docs_src/path_operation_advanced_configuration/tutorial002.py!} {!../../docs_src/path_operation_advanced_configuration/tutorial002.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Wenn Sie `app.openapi()` manuell aufrufen, sollten Sie vorher die `operationId`s aktualisiert haben. Wenn Sie `app.openapi()` manuell aufrufen, sollten Sie vorher die `operationId`s aktualisiert haben.
/// ///
/// warning | "Achtung" /// warning | Achtung
Wenn Sie dies tun, müssen Sie sicherstellen, dass jede Ihrer *Pfadoperation-Funktionen* einen eindeutigen Namen hat. Wenn Sie dies tun, müssen Sie sicherstellen, dass jede Ihrer *Pfadoperation-Funktionen* einen eindeutigen Namen hat.
@ -74,7 +74,7 @@ Es gibt hier in der Dokumentation ein ganzes Kapitel darüber, Sie können es un
Wenn Sie in Ihrer Anwendung eine *Pfadoperation* deklarieren, generiert **FastAPI** automatisch die relevanten Metadaten dieser *Pfadoperation*, die in das OpenAPI-Schema aufgenommen werden sollen. Wenn Sie in Ihrer Anwendung eine *Pfadoperation* deklarieren, generiert **FastAPI** automatisch die relevanten Metadaten dieser *Pfadoperation*, die in das OpenAPI-Schema aufgenommen werden sollen.
/// note | "Technische Details" /// note | Technische Details
In der OpenAPI-Spezifikation wird das <a href="https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operation-object" class="external-link" target="_blank">Operationsobjekt</a> genannt. In der OpenAPI-Spezifikation wird das <a href="https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operation-object" class="external-link" target="_blank">Operationsobjekt</a> genannt.
@ -86,7 +86,7 @@ Es enthält `tags`, `parameters`, `requestBody`, `responses`, usw.
Dieses *Pfadoperation*-spezifische OpenAPI-Schema wird normalerweise automatisch von **FastAPI** generiert, Sie können es aber auch erweitern. Dieses *Pfadoperation*-spezifische OpenAPI-Schema wird normalerweise automatisch von **FastAPI** generiert, Sie können es aber auch erweitern.
/// tip | "Tipp" /// tip | Tipp
Dies ist ein Low-Level Erweiterungspunkt. Dies ist ein Low-Level Erweiterungspunkt.
@ -215,7 +215,7 @@ In Pydantic Version 1 war die Methode zum Parsen und Validieren eines Objekts `I
/// ///
/// tip | "Tipp" /// tip | Tipp
Hier verwenden wir dasselbe Pydantic-Modell wieder. Hier verwenden wir dasselbe Pydantic-Modell wieder.

4
docs/de/docs/advanced/response-cookies.md

@ -30,7 +30,7 @@ Setzen Sie dann Cookies darin und geben Sie sie dann zurück:
{!../../docs_src/response_cookies/tutorial001.py!} {!../../docs_src/response_cookies/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass, wenn Sie eine Response direkt zurückgeben, anstatt den `Response`-Parameter zu verwenden, FastAPI diese direkt zurückgibt. Beachten Sie, dass, wenn Sie eine Response direkt zurückgeben, anstatt den `Response`-Parameter zu verwenden, FastAPI diese direkt zurückgibt.
@ -42,7 +42,7 @@ Und auch, dass Sie keine Daten senden, die durch ein `response_model` hätten ge
### Mehr Informationen ### Mehr Informationen
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import Response` oder `from starlette.responses import JSONResponse` verwenden. Sie können auch `from starlette.responses import Response` oder `from starlette.responses import JSONResponse` verwenden.

4
docs/de/docs/advanced/response-directly.md

@ -14,7 +14,7 @@ Das kann beispielsweise nützlich sein, um benutzerdefinierte Header oder Cookie
Tatsächlich können Sie jede `Response` oder jede Unterklasse davon zurückgeben. Tatsächlich können Sie jede `Response` oder jede Unterklasse davon zurückgeben.
/// tip | "Tipp" /// tip | Tipp
`JSONResponse` selbst ist eine Unterklasse von `Response`. `JSONResponse` selbst ist eine Unterklasse von `Response`.
@ -38,7 +38,7 @@ In diesen Fällen können Sie den `jsonable_encoder` verwenden, um Ihre Daten zu
{!../../docs_src/response_directly/tutorial001.py!} {!../../docs_src/response_directly/tutorial001.py!}
``` ```
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import JSONResponse` verwenden. Sie können auch `from starlette.responses import JSONResponse` verwenden.

2
docs/de/docs/advanced/response-headers.md

@ -28,7 +28,7 @@ Erstellen Sie eine Response wie in [Eine Response direkt zurückgeben](response-
{!../../docs_src/response_headers/tutorial001.py!} {!../../docs_src/response_headers/tutorial001.py!}
``` ```
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import Response` oder `from starlette.responses import JSONResponse` verwenden. Sie können auch `from starlette.responses import Response` oder `from starlette.responses import JSONResponse` verwenden.

2
docs/de/docs/advanced/security/index.md

@ -4,7 +4,7 @@
Neben den in [Tutorial – Benutzerhandbuch: Sicherheit](../../tutorial/security/index.md){.internal-link target=_blank} behandelten Funktionen gibt es noch einige zusätzliche Funktionen zur Handhabung der Sicherheit. Neben den in [Tutorial – Benutzerhandbuch: Sicherheit](../../tutorial/security/index.md){.internal-link target=_blank} behandelten Funktionen gibt es noch einige zusätzliche Funktionen zur Handhabung der Sicherheit.
/// tip | "Tipp" /// tip | Tipp
Die nächsten Abschnitte sind **nicht unbedingt „fortgeschritten“**. Die nächsten Abschnitte sind **nicht unbedingt „fortgeschritten“**.

60
docs/de/docs/advanced/security/oauth2-scopes.md

@ -10,7 +10,7 @@ Jedes Mal, wenn Sie sich mit Facebook, Google, GitHub, Microsoft oder Twitter an
In diesem Abschnitt erfahren Sie, wie Sie Authentifizierung und Autorisierung mit demselben OAuth2, mit Scopes in Ihrer **FastAPI**-Anwendung verwalten. In diesem Abschnitt erfahren Sie, wie Sie Authentifizierung und Autorisierung mit demselben OAuth2, mit Scopes in Ihrer **FastAPI**-Anwendung verwalten.
/// warning | "Achtung" /// warning | Achtung
Dies ist ein mehr oder weniger fortgeschrittener Abschnitt. Wenn Sie gerade erst anfangen, können Sie ihn überspringen. Dies ist ein mehr oder weniger fortgeschrittener Abschnitt. Wenn Sie gerade erst anfangen, können Sie ihn überspringen.
@ -88,7 +88,7 @@ Sehen wir uns zunächst kurz die Teile an, die sich gegenüber den Beispielen im
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -102,7 +102,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -116,7 +116,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -162,7 +162,7 @@ Der `scopes`-Parameter erhält ein `dict` mit jedem Scope als Schlüssel und des
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -176,7 +176,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -190,7 +190,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -218,7 +218,7 @@ Wir verwenden immer noch dasselbe `OAuth2PasswordRequestForm`. Es enthält eine
Und wir geben die Scopes als Teil des JWT-Tokens zurück. Und wir geben die Scopes als Teil des JWT-Tokens zurück.
/// danger | "Gefahr" /// danger | Gefahr
Der Einfachheit halber fügen wir hier die empfangenen Scopes direkt zum Token hinzu. Der Einfachheit halber fügen wir hier die empfangenen Scopes direkt zum Token hinzu.
@ -252,7 +252,7 @@ Aus Sicherheitsgründen sollten Sie jedoch sicherstellen, dass Sie in Ihrer Anwe
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -266,7 +266,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -280,7 +280,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -308,7 +308,7 @@ Und die Abhängigkeitsfunktion `get_current_active_user` kann auch Unterabhängi
In diesem Fall erfordert sie den Scope `me` (sie könnte mehr als einen Scope erfordern). In diesem Fall erfordert sie den Scope `me` (sie könnte mehr als einen Scope erfordern).
/// note | "Hinweis" /// note | Hinweis
Sie müssen nicht unbedingt an verschiedenen Stellen verschiedene Scopes hinzufügen. Sie müssen nicht unbedingt an verschiedenen Stellen verschiedene Scopes hinzufügen.
@ -342,7 +342,7 @@ Wir tun dies hier, um zu demonstrieren, wie **FastAPI** auf verschiedenen Ebenen
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -356,7 +356,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -370,7 +370,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -382,7 +382,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// info | "Technische Details" /// info | Technische Details
`Security` ist tatsächlich eine Unterklasse von `Depends` und hat nur noch einen zusätzlichen Parameter, den wir später kennenlernen werden. `Security` ist tatsächlich eine Unterklasse von `Depends` und hat nur noch einen zusätzlichen Parameter, den wir später kennenlernen werden.
@ -432,7 +432,7 @@ Diese `SecurityScopes`-Klasse ähnelt `Request` (`Request` wurde verwendet, um d
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -446,7 +446,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -460,7 +460,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -510,7 +510,7 @@ In diese Exception fügen wir (falls vorhanden) die erforderlichen Scopes als du
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -524,7 +524,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -538,7 +538,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -590,7 +590,7 @@ Wir verifizieren auch, dass wir einen Benutzer mit diesem Benutzernamen haben, u
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -604,7 +604,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -618,7 +618,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -662,7 +662,7 @@ Hierzu verwenden wir `security_scopes.scopes`, das eine `list`e mit allen diesen
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -676,7 +676,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -690,7 +690,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -727,7 +727,7 @@ So sieht die Hierarchie der Abhängigkeiten und Scopes aus:
* `security_scopes.scopes` enthält `["me"]` für die *Pfadoperation* `read_users_me`, da das in der Abhängigkeit `get_current_active_user` deklariert ist. * `security_scopes.scopes` enthält `["me"]` für die *Pfadoperation* `read_users_me`, da das in der Abhängigkeit `get_current_active_user` deklariert ist.
* `security_scopes.scopes` wird `[]` (nichts) für die *Pfadoperation* `read_system_status` enthalten, da diese keine `Security` mit `scopes` deklariert hat, und deren Abhängigkeit `get_current_user` ebenfalls keinerlei `scopes` deklariert. * `security_scopes.scopes` wird `[]` (nichts) für die *Pfadoperation* `read_system_status` enthalten, da diese keine `Security` mit `scopes` deklariert hat, und deren Abhängigkeit `get_current_user` ebenfalls keinerlei `scopes` deklariert.
/// tip | "Tipp" /// tip | Tipp
Das Wichtige und „Magische“ hier ist, dass `get_current_user` für jede *Pfadoperation* eine andere Liste von `scopes` hat, die überprüft werden. Das Wichtige und „Magische“ hier ist, dass `get_current_user` für jede *Pfadoperation* eine andere Liste von `scopes` hat, die überprüft werden.
@ -771,7 +771,7 @@ Am häufigsten ist der „Implicit“-Flow.
Am sichersten ist der „Code“-Flow, die Implementierung ist jedoch komplexer, da mehr Schritte erforderlich sind. Da er komplexer ist, schlagen viele Anbieter letztendlich den „Implicit“-Flow vor. Am sichersten ist der „Code“-Flow, die Implementierung ist jedoch komplexer, da mehr Schritte erforderlich sind. Da er komplexer ist, schlagen viele Anbieter letztendlich den „Implicit“-Flow vor.
/// note | "Hinweis" /// note | Hinweis
Es ist üblich, dass jeder Authentifizierungsanbieter seine Flows anders benennt, um sie zu einem Teil seiner Marke zu machen. Es ist üblich, dass jeder Authentifizierungsanbieter seine Flows anders benennt, um sie zu einem Teil seiner Marke zu machen.

28
docs/de/docs/advanced/settings.md

@ -8,7 +8,7 @@ Aus diesem Grund werden diese üblicherweise in Umgebungsvariablen bereitgestell
## Umgebungsvariablen ## Umgebungsvariablen
/// tip | "Tipp" /// tip | Tipp
Wenn Sie bereits wissen, was „Umgebungsvariablen“ sind und wie man sie verwendet, können Sie gerne mit dem nächsten Abschnitt weiter unten fortfahren. Wenn Sie bereits wissen, was „Umgebungsvariablen“ sind und wie man sie verwendet, können Sie gerne mit dem nächsten Abschnitt weiter unten fortfahren.
@ -67,7 +67,7 @@ name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python") print(f"Hello {name} from Python")
``` ```
/// tip | "Tipp" /// tip | Tipp
Das zweite Argument für <a href="https://docs.python.org/3.8/library/os.html#os.getenv" class="external-link" target="_blank">`os.getenv()`</a> ist der zurückzugebende Defaultwert. Das zweite Argument für <a href="https://docs.python.org/3.8/library/os.html#os.getenv" class="external-link" target="_blank">`os.getenv()`</a> ist der zurückzugebende Defaultwert.
@ -124,7 +124,7 @@ Hello World from Python
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Weitere Informationen dazu finden Sie unter <a href="https://12factor.net/config" class="external-link" target="_blank">The Twelve-Factor App: Config</a>. Weitere Informationen dazu finden Sie unter <a href="https://12factor.net/config" class="external-link" target="_blank">The Twelve-Factor App: Config</a>.
@ -200,7 +200,7 @@ In Pydantic v1 würden Sie `BaseSettings` direkt von `pydantic` statt von `pydan
//// ////
/// tip | "Tipp" /// tip | Tipp
Für ein schnelles Copy-and-paste verwenden Sie nicht dieses Beispiel, sondern das letzte unten. Für ein schnelles Copy-and-paste verwenden Sie nicht dieses Beispiel, sondern das letzte unten.
@ -232,7 +232,7 @@ $ ADMIN_EMAIL="[email protected]" APP_NAME="ChimichangApp" uvicorn main:app
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Um mehrere Umgebungsvariablen für einen einzelnen Befehl festzulegen, trennen Sie diese einfach durch ein Leerzeichen und fügen Sie alle vor dem Befehl ein. Um mehrere Umgebungsvariablen für einen einzelnen Befehl festzulegen, trennen Sie diese einfach durch ein Leerzeichen und fügen Sie alle vor dem Befehl ein.
@ -260,7 +260,7 @@ Und dann verwenden Sie diese in einer Datei `main.py`:
{!../../docs_src/settings/app01/main.py!} {!../../docs_src/settings/app01/main.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Sie benötigen außerdem eine Datei `__init__.py`, wie in [Größere Anwendungen – mehrere Dateien](../tutorial/bigger-applications.md){.internal-link target=_blank} gesehen. Sie benötigen außerdem eine Datei `__init__.py`, wie in [Größere Anwendungen – mehrere Dateien](../tutorial/bigger-applications.md){.internal-link target=_blank} gesehen.
@ -304,7 +304,7 @@ Jetzt erstellen wir eine Abhängigkeit, die ein neues `config.Settings()` zurüc
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -316,7 +316,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Wir werden das `@lru_cache` in Kürze besprechen. Wir werden das `@lru_cache` in Kürze besprechen.
@ -344,7 +344,7 @@ Und dann können wir das von der *Pfadoperation-Funktion* als Abhängigkeit einf
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -374,7 +374,7 @@ Wenn Sie viele Einstellungen haben, die sich möglicherweise oft ändern, vielle
Diese Praxis ist so weit verbreitet, dass sie einen Namen hat. Diese Umgebungsvariablen werden üblicherweise in einer Datei `.env` abgelegt und die Datei wird „dotenv“ genannt. Diese Praxis ist so weit verbreitet, dass sie einen Namen hat. Diese Umgebungsvariablen werden üblicherweise in einer Datei `.env` abgelegt und die Datei wird „dotenv“ genannt.
/// tip | "Tipp" /// tip | Tipp
Eine Datei, die mit einem Punkt (`.`) beginnt, ist eine versteckte Datei in Unix-ähnlichen Systemen wie Linux und macOS. Eine Datei, die mit einem Punkt (`.`) beginnt, ist eine versteckte Datei in Unix-ähnlichen Systemen wie Linux und macOS.
@ -384,7 +384,7 @@ Aber eine dotenv-Datei muss nicht unbedingt genau diesen Dateinamen haben.
Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support" class="external-link" target="_blank">Pydantic Settings: Dotenv (.env) support</a>. Pydantic unterstützt das Lesen dieser Dateitypen mithilfe einer externen Bibliothek. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/pydantic_settings/#dotenv-env-support" class="external-link" target="_blank">Pydantic Settings: Dotenv (.env) support</a>.
/// tip | "Tipp" /// tip | Tipp
Damit das funktioniert, müssen Sie `pip install python-dotenv` ausführen. Damit das funktioniert, müssen Sie `pip install python-dotenv` ausführen.
@ -409,7 +409,7 @@ Und dann aktualisieren Sie Ihre `config.py` mit:
{!> ../../docs_src/settings/app03_an/config.py!} {!> ../../docs_src/settings/app03_an/config.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/config/" class="external-link" target="_blank">Pydantic: Configuration</a>. Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/latest/concepts/config/" class="external-link" target="_blank">Pydantic: Configuration</a>.
@ -423,7 +423,7 @@ Das Attribut `model_config` wird nur für die Pydantic-Konfiguration verwendet.
{!> ../../docs_src/settings/app03_an/config_pv1.py!} {!> ../../docs_src/settings/app03_an/config_pv1.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Die Klasse `Config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/1.10/usage/model_config/" class="external-link" target="_blank">Pydantic Model Config</a>. Die Klasse `Config` wird nur für die Pydantic-Konfiguration verwendet. Weitere Informationen finden Sie unter <a href="https://docs.pydantic.dev/1.10/usage/model_config/" class="external-link" target="_blank">Pydantic Model Config</a>.
@ -480,7 +480,7 @@ Da wir jedoch den `@lru_cache`-Dekorator oben verwenden, wird das `Settings`-Obj
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

6
docs/de/docs/advanced/templates.md

@ -31,7 +31,7 @@ $ pip install jinja2
{!../../docs_src/templates/tutorial001.py!} {!../../docs_src/templates/tutorial001.py!}
``` ```
/// note | "Hinweis" /// note | Hinweis
Vor FastAPI 0.108.0 und Starlette 0.29.0 war `name` der erste Parameter. Vor FastAPI 0.108.0 und Starlette 0.29.0 war `name` der erste Parameter.
@ -39,13 +39,13 @@ Außerdem wurde in früheren Versionen das `request`-Objekt als Teil der Schlüs
/// ///
/// tip | "Tipp" /// tip | Tipp
Durch die Deklaration von `response_class=HTMLResponse` kann die Dokumentationsoberfläche erkennen, dass die Response HTML sein wird. Durch die Deklaration von `response_class=HTMLResponse` kann die Dokumentationsoberfläche erkennen, dass die Response HTML sein wird.
/// ///
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.templating import Jinja2Templates` verwenden. Sie können auch `from starlette.templating import Jinja2Templates` verwenden.

8
docs/de/docs/advanced/testing-dependencies.md

@ -54,7 +54,7 @@ Und dann ruft **FastAPI** diese Überschreibung anstelle der ursprünglichen Abh
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -68,7 +68,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -80,7 +80,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Sie können eine Überschreibung für eine Abhängigkeit festlegen, die an einer beliebigen Stelle in Ihrer **FastAPI**-Anwendung verwendet wird. Sie können eine Überschreibung für eine Abhängigkeit festlegen, die an einer beliebigen Stelle in Ihrer **FastAPI**-Anwendung verwendet wird.
@ -96,7 +96,7 @@ Anschließend können Sie Ihre Überschreibungen zurücksetzen (entfernen), inde
app.dependency_overrides = {} app.dependency_overrides = {}
``` ```
/// tip | "Tipp" /// tip | Tipp
Wenn Sie eine Abhängigkeit nur während einiger Tests überschreiben möchten, können Sie die Überschreibung zu Beginn des Tests (innerhalb der Testfunktion) festlegen und am Ende (am Ende der Testfunktion) zurücksetzen. Wenn Sie eine Abhängigkeit nur während einiger Tests überschreiben möchten, können Sie die Überschreibung zu Beginn des Tests (innerhalb der Testfunktion) festlegen und am Ende (am Ende der Testfunktion) zurücksetzen.

2
docs/de/docs/advanced/testing-websockets.md

@ -8,7 +8,7 @@ Dazu verwenden Sie den `TestClient` in einer `with`-Anweisung, eine Verbindung z
{!../../docs_src/app_testing/tutorial002.py!} {!../../docs_src/app_testing/tutorial002.py!}
``` ```
/// note | "Hinweis" /// note | Hinweis
Weitere Informationen finden Sie in der Starlette-Dokumentation zum <a href="https://www.starlette.io/testclient/#testing-websocket-sessions" class="external-link" target="_blank">Testen von WebSockets</a>. Weitere Informationen finden Sie in der Starlette-Dokumentation zum <a href="https://www.starlette.io/testclient/#testing-websocket-sessions" class="external-link" target="_blank">Testen von WebSockets</a>.

4
docs/de/docs/advanced/using-request-directly.md

@ -35,7 +35,7 @@ Dazu müssen Sie direkt auf den Request zugreifen.
Durch die Deklaration eines *Pfadoperation-Funktionsparameters*, dessen Typ der `Request` ist, weiß **FastAPI**, dass es den `Request` diesem Parameter übergeben soll. Durch die Deklaration eines *Pfadoperation-Funktionsparameters*, dessen Typ der `Request` ist, weiß **FastAPI**, dass es den `Request` diesem Parameter übergeben soll.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass wir in diesem Fall einen Pfad-Parameter zusätzlich zum Request-Parameter deklarieren. Beachten Sie, dass wir in diesem Fall einen Pfad-Parameter zusätzlich zum Request-Parameter deklarieren.
@ -49,7 +49,7 @@ Auf die gleiche Weise können Sie wie gewohnt jeden anderen Parameter deklariere
Weitere Details zum <a href="https://www.starlette.io/requests/" class="external-link" target="_blank">`Request`-Objekt finden Sie in der offiziellen Starlette-Dokumentation</a>. Weitere Details zum <a href="https://www.starlette.io/requests/" class="external-link" target="_blank">`Request`-Objekt finden Sie in der offiziellen Starlette-Dokumentation</a>.
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.requests import Request` verwenden. Sie können auch `from starlette.requests import Request` verwenden.

10
docs/de/docs/advanced/websockets.md

@ -50,7 +50,7 @@ Erstellen Sie in Ihrer **FastAPI**-Anwendung einen `websocket`:
{!../../docs_src/websockets/tutorial001.py!} {!../../docs_src/websockets/tutorial001.py!}
``` ```
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.websockets import WebSocket` verwenden. Sie können auch `from starlette.websockets import WebSocket` verwenden.
@ -141,7 +141,7 @@ Diese funktionieren auf die gleiche Weise wie für andere FastAPI-Endpunkte/*Pfa
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -155,7 +155,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -196,7 +196,7 @@ Dort können Sie einstellen:
* Die „Item ID“, die im Pfad verwendet wird. * Die „Item ID“, die im Pfad verwendet wird.
* Das „Token“, das als Query-Parameter verwendet wird. * Das „Token“, das als Query-Parameter verwendet wird.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass der Query-„Token“ von einer Abhängigkeit verarbeitet wird. Beachten Sie, dass der Query-„Token“ von einer Abhängigkeit verarbeitet wird.
@ -238,7 +238,7 @@ Das wird die Ausnahme `WebSocketDisconnect` auslösen und alle anderen Clients e
Client #1596980209979 left the chat Client #1596980209979 left the chat
``` ```
/// tip | "Tipp" /// tip | Tipp
Die obige Anwendung ist ein minimales und einfaches Beispiel, das zeigt, wie Nachrichten verarbeitet und an mehrere WebSocket-Verbindungen gesendet werden. Die obige Anwendung ist ein minimales und einfaches Beispiel, das zeigt, wie Nachrichten verarbeitet und an mehrere WebSocket-Verbindungen gesendet werden.

40
docs/de/docs/alternatives.md

@ -30,13 +30,13 @@ Es wird von vielen Unternehmen verwendet, darunter Mozilla, Red Hat und Eventbri
Es war eines der ersten Beispiele für **automatische API-Dokumentation**, und dies war insbesondere eine der ersten Ideen, welche „die Suche nach“ **FastAPI** inspirierten. Es war eines der ersten Beispiele für **automatische API-Dokumentation**, und dies war insbesondere eine der ersten Ideen, welche „die Suche nach“ **FastAPI** inspirierten.
/// note | "Hinweis" /// note | Hinweis
Das Django REST Framework wurde von Tom Christie erstellt. Derselbe Schöpfer von Starlette und Uvicorn, auf denen **FastAPI** basiert. Das Django REST Framework wurde von Tom Christie erstellt. Derselbe Schöpfer von Starlette und Uvicorn, auf denen **FastAPI** basiert.
/// ///
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Eine automatische API-Dokumentationsoberfläche zu haben. Eine automatische API-Dokumentationsoberfläche zu haben.
@ -56,7 +56,7 @@ Diese Entkopplung der Teile und die Tatsache, dass es sich um ein „Mikroframew
Angesichts der Einfachheit von Flask schien es eine gute Ergänzung zum Erstellen von APIs zu sein. Als Nächstes musste ein „Django REST Framework“ für Flask gefunden werden. Angesichts der Einfachheit von Flask schien es eine gute Ergänzung zum Erstellen von APIs zu sein. Als Nächstes musste ein „Django REST Framework“ für Flask gefunden werden.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Ein Mikroframework zu sein. Es einfach zu machen, die benötigten Tools und Teile zu kombinieren. Ein Mikroframework zu sein. Es einfach zu machen, die benötigten Tools und Teile zu kombinieren.
@ -98,7 +98,7 @@ def read_url():
Sehen Sie sich die Ähnlichkeiten in `requests.get(...)` und `@app.get(...)` an. Sehen Sie sich die Ähnlichkeiten in `requests.get(...)` und `@app.get(...)` an.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
* Über eine einfache und intuitive API zu verfügen. * Über eine einfache und intuitive API zu verfügen.
* HTTP-Methodennamen (Operationen) direkt, auf einfache und intuitive Weise zu verwenden. * HTTP-Methodennamen (Operationen) direkt, auf einfache und intuitive Weise zu verwenden.
@ -118,7 +118,7 @@ Irgendwann wurde Swagger an die Linux Foundation übergeben und in OpenAPI umben
Aus diesem Grund spricht man bei Version 2.0 häufig von „Swagger“ und ab Version 3 von „OpenAPI“. Aus diesem Grund spricht man bei Version 2.0 häufig von „Swagger“ und ab Version 3 von „OpenAPI“.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Einen offenen Standard für API-Spezifikationen zu übernehmen und zu verwenden, anstelle eines benutzerdefinierten Schemas. Einen offenen Standard für API-Spezifikationen zu übernehmen und zu verwenden, anstelle eines benutzerdefinierten Schemas.
@ -147,7 +147,7 @@ Für diese Funktionen wurde Marshmallow entwickelt. Es ist eine großartige Bibl
Aber sie wurde erstellt, bevor Typhinweise in Python existierten. Um also ein <abbr title="die Definition, wie Daten geformt sein werden sollen">Schema</abbr> zu definieren, müssen Sie bestimmte Werkzeuge und Klassen verwenden, die von Marshmallow bereitgestellt werden. Aber sie wurde erstellt, bevor Typhinweise in Python existierten. Um also ein <abbr title="die Definition, wie Daten geformt sein werden sollen">Schema</abbr> zu definieren, müssen Sie bestimmte Werkzeuge und Klassen verwenden, die von Marshmallow bereitgestellt werden.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Code zu verwenden, um „Schemas“ zu definieren, welche Datentypen und Validierung automatisch bereitstellen. Code zu verwenden, um „Schemas“ zu definieren, welche Datentypen und Validierung automatisch bereitstellen.
@ -169,7 +169,7 @@ Webargs wurde von denselben Marshmallow-Entwicklern erstellt.
/// ///
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Eingehende Requestdaten automatisch zu validieren. Eingehende Requestdaten automatisch zu validieren.
@ -199,7 +199,7 @@ APISpec wurde von denselben Marshmallow-Entwicklern erstellt.
/// ///
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Den offenen Standard für APIs, OpenAPI, zu unterstützen. Den offenen Standard für APIs, OpenAPI, zu unterstützen.
@ -231,7 +231,7 @@ Flask-apispec wurde von denselben Marshmallow-Entwicklern erstellt.
/// ///
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Das OpenAPI-Schema automatisch zu generieren, aus demselben Code, welcher die Serialisierung und Validierung definiert. Das OpenAPI-Schema automatisch zu generieren, aus demselben Code, welcher die Serialisierung und Validierung definiert.
@ -251,7 +251,7 @@ Da TypeScript-Daten jedoch nach der Kompilierung nach JavaScript nicht erhalten
Es kann nicht sehr gut mit verschachtelten Modellen umgehen. Wenn es sich beim JSON-Body in der Anfrage also um ein JSON-Objekt mit inneren Feldern handelt, die wiederum verschachtelte JSON-Objekte sind, kann er nicht richtig dokumentiert und validiert werden. Es kann nicht sehr gut mit verschachtelten Modellen umgehen. Wenn es sich beim JSON-Body in der Anfrage also um ein JSON-Objekt mit inneren Feldern handelt, die wiederum verschachtelte JSON-Objekte sind, kann er nicht richtig dokumentiert und validiert werden.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Python-Typen zu verwenden, um eine hervorragende Editorunterstützung zu erhalten. Python-Typen zu verwenden, um eine hervorragende Editorunterstützung zu erhalten.
@ -263,7 +263,7 @@ Python-Typen zu verwenden, um eine hervorragende Editorunterstützung zu erhalte
Es war eines der ersten extrem schnellen Python-Frameworks, welches auf `asyncio` basierte. Es wurde so gestaltet, dass es Flask sehr ähnlich ist. Es war eines der ersten extrem schnellen Python-Frameworks, welches auf `asyncio` basierte. Es wurde so gestaltet, dass es Flask sehr ähnlich ist.
/// note | "Technische Details" /// note | Technische Details
Es verwendete <a href="https://github.com/MagicStack/uvloop" class="external-link" target="_blank">`uvloop`</a> anstelle der standardmäßigen Python-`asyncio`-Schleife. Das hat es so schnell gemacht. Es verwendete <a href="https://github.com/MagicStack/uvloop" class="external-link" target="_blank">`uvloop`</a> anstelle der standardmäßigen Python-`asyncio`-Schleife. Das hat es so schnell gemacht.
@ -271,7 +271,7 @@ Hat eindeutig Uvicorn und Starlette inspiriert, welche derzeit in offenen Benchm
/// ///
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Einen Weg zu finden, eine hervorragende Performanz zu haben. Einen Weg zu finden, eine hervorragende Performanz zu haben.
@ -287,7 +287,7 @@ Es ist so konzipiert, dass es über Funktionen verfügt, welche zwei Parameter e
Daher müssen Datenvalidierung, Serialisierung und Dokumentation im Code und nicht automatisch erfolgen. Oder sie müssen als Framework oberhalb von Falcon implementiert werden, so wie Hug. Dieselbe Unterscheidung findet auch in anderen Frameworks statt, die vom Design von Falcon inspiriert sind und ein Requestobjekt und ein Responseobjekt als Parameter haben. Daher müssen Datenvalidierung, Serialisierung und Dokumentation im Code und nicht automatisch erfolgen. Oder sie müssen als Framework oberhalb von Falcon implementiert werden, so wie Hug. Dieselbe Unterscheidung findet auch in anderen Frameworks statt, die vom Design von Falcon inspiriert sind und ein Requestobjekt und ein Responseobjekt als Parameter haben.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Wege zu finden, eine großartige Performanz zu erzielen. Wege zu finden, eine großartige Performanz zu erzielen.
@ -313,7 +313,7 @@ Das Dependency Injection System erfordert eine Vorab-Registrierung der Abhängig
Routen werden an einer einzigen Stelle deklariert, indem Funktionen verwendet werden, die an anderen Stellen deklariert wurden (anstatt Dekoratoren zu verwenden, welche direkt über der Funktion platziert werden können, welche den Endpunkt verarbeitet). Dies ähnelt eher der Vorgehensweise von Django als der Vorgehensweise von Flask (und Starlette). Es trennt im Code Dinge, die relativ eng miteinander gekoppelt sind. Routen werden an einer einzigen Stelle deklariert, indem Funktionen verwendet werden, die an anderen Stellen deklariert wurden (anstatt Dekoratoren zu verwenden, welche direkt über der Funktion platziert werden können, welche den Endpunkt verarbeitet). Dies ähnelt eher der Vorgehensweise von Django als der Vorgehensweise von Flask (und Starlette). Es trennt im Code Dinge, die relativ eng miteinander gekoppelt sind.
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Zusätzliche Validierungen für Datentypen zu definieren, mithilfe des „Default“-Werts von Modellattributen. Dies verbessert die Editorunterstützung und war zuvor in Pydantic nicht verfügbar. Zusätzliche Validierungen für Datentypen zu definieren, mithilfe des „Default“-Werts von Modellattributen. Dies verbessert die Editorunterstützung und war zuvor in Pydantic nicht verfügbar.
@ -341,7 +341,7 @@ Hug wurde von Timothy Crosley erstellt, dem gleichen Schöpfer von <a href="http
/// ///
/// check | "Ideen, die **FastAPI** inspiriert haben" /// check | Ideen, die **FastAPI** inspiriert haben
Hug inspirierte Teile von APIStar und war eines der Tools, die ich am vielversprechendsten fand, neben APIStar. Hug inspirierte Teile von APIStar und war eines der Tools, die ich am vielversprechendsten fand, neben APIStar.
@ -385,7 +385,7 @@ APIStar wurde von Tom Christie erstellt. Derselbe, welcher Folgendes erstellt ha
/// ///
/// check | "Inspirierte **FastAPI**" /// check | Inspirierte **FastAPI**
Zu existieren. Zu existieren.
@ -409,7 +409,7 @@ Das macht es äußerst intuitiv.
Es ist vergleichbar mit Marshmallow. Obwohl es in Benchmarks schneller als Marshmallow ist. Und da es auf den gleichen Python-Typhinweisen basiert, ist die Editorunterstützung großartig. Es ist vergleichbar mit Marshmallow. Obwohl es in Benchmarks schneller als Marshmallow ist. Und da es auf den gleichen Python-Typhinweisen basiert, ist die Editorunterstützung großartig.
/// check | "**FastAPI** verwendet es, um" /// check | **FastAPI** verwendet es, um
Die gesamte Datenvalidierung, Datenserialisierung und automatische Modelldokumentation (basierend auf JSON Schema) zu erledigen. Die gesamte Datenvalidierung, Datenserialisierung und automatische Modelldokumentation (basierend auf JSON Schema) zu erledigen.
@ -444,7 +444,7 @@ Es bietet jedoch keine automatische Datenvalidierung, Serialisierung oder Dokume
Das ist eines der wichtigsten Dinge, welche **FastAPI** hinzufügt, alles basierend auf Python-Typhinweisen (mit Pydantic). Das, plus, das Dependency Injection System, Sicherheitswerkzeuge, OpenAPI-Schemagenerierung, usw. Das ist eines der wichtigsten Dinge, welche **FastAPI** hinzufügt, alles basierend auf Python-Typhinweisen (mit Pydantic). Das, plus, das Dependency Injection System, Sicherheitswerkzeuge, OpenAPI-Schemagenerierung, usw.
/// note | "Technische Details" /// note | Technische Details
ASGI ist ein neuer „Standard“, welcher von Mitgliedern des Django-Kernteams entwickelt wird. Es handelt sich immer noch nicht um einen „Python-Standard“ (ein PEP), obwohl sie gerade dabei sind, das zu tun. ASGI ist ein neuer „Standard“, welcher von Mitgliedern des Django-Kernteams entwickelt wird. Es handelt sich immer noch nicht um einen „Python-Standard“ (ein PEP), obwohl sie gerade dabei sind, das zu tun.
@ -452,7 +452,7 @@ Dennoch wird es bereits von mehreren Tools als „Standard“ verwendet. Das ver
/// ///
/// check | "**FastAPI** verwendet es, um" /// check | **FastAPI** verwendet es, um
Alle Kern-Webaspekte zu handhaben. Und fügt Funktionen obenauf. Alle Kern-Webaspekte zu handhaben. Und fügt Funktionen obenauf.
@ -470,7 +470,7 @@ Es handelt sich nicht um ein Webframework, sondern um einen Server. Beispielswei
Es ist der empfohlene Server für Starlette und **FastAPI**. Es ist der empfohlene Server für Starlette und **FastAPI**.
/// check | "**FastAPI** empfiehlt es als" /// check | **FastAPI** empfiehlt es als
Hauptwebserver zum Ausführen von **FastAPI**-Anwendungen. Hauptwebserver zum Ausführen von **FastAPI**-Anwendungen.

2
docs/de/docs/async.md

@ -401,7 +401,7 @@ All das ist es, was FastAPI (via Starlette) befeuert und es eine so beeindrucken
## Sehr technische Details ## Sehr technische Details
/// warning | "Achtung" /// warning | Achtung
Das folgende können Sie wahrscheinlich überspringen. Das folgende können Sie wahrscheinlich überspringen.

18
docs/de/docs/contributing.md

@ -106,7 +106,7 @@ $ python -m pip install --upgrade pip
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Aktivieren Sie jedes Mal, wenn Sie ein neues Package mit `pip` in dieser Umgebung installieren, die Umgebung erneut. Aktivieren Sie jedes Mal, wenn Sie ein neues Package mit `pip` in dieser Umgebung installieren, die Umgebung erneut.
@ -138,7 +138,7 @@ Und wenn Sie diesen lokalen FastAPI-Quellcode aktualisieren und dann die Python-
Auf diese Weise müssen Sie Ihre lokale Version nicht „installieren“, um jede Änderung testen zu können. Auf diese Weise müssen Sie Ihre lokale Version nicht „installieren“, um jede Änderung testen zu können.
/// note | "Technische Details" /// note | Technische Details
Das geschieht nur, wenn Sie die Installation mit der enthaltenen `requirements.txt` durchführen, anstatt `pip install fastapi` direkt auszuführen. Das geschieht nur, wenn Sie die Installation mit der enthaltenen `requirements.txt` durchführen, anstatt `pip install fastapi` direkt auszuführen.
@ -186,7 +186,7 @@ Das stellt die Dokumentation unter `http://127.0.0.1:8008` bereit.
Auf diese Weise können Sie die Dokumentation/Quelldateien bearbeiten und die Änderungen live sehen. Auf diese Weise können Sie die Dokumentation/Quelldateien bearbeiten und die Änderungen live sehen.
/// tip | "Tipp" /// tip | Tipp
Alternativ können Sie die Schritte des Skripts auch manuell ausführen. Alternativ können Sie die Schritte des Skripts auch manuell ausführen.
@ -229,7 +229,7 @@ Die Dokumentation verwendet <a href="https://www.mkdocs.org/" class="external-li
Und es gibt zusätzliche Tools/Skripte für Übersetzungen, in `./scripts/docs.py`. Und es gibt zusätzliche Tools/Skripte für Übersetzungen, in `./scripts/docs.py`.
/// tip | "Tipp" /// tip | Tipp
Sie müssen sich den Code in `./scripts/docs.py` nicht anschauen, verwenden Sie ihn einfach in der Kommandozeile. Sie müssen sich den Code in `./scripts/docs.py` nicht anschauen, verwenden Sie ihn einfach in der Kommandozeile.
@ -283,7 +283,7 @@ Hier sind die Schritte, die Ihnen bei Übersetzungen helfen.
* Sehen Sie diese Pull Requests durch (Review), schlagen Sie Änderungen vor, oder segnen Sie sie ab (Approval). Bei den Sprachen, die ich nicht spreche, warte ich, bis mehrere andere die Übersetzung durchgesehen haben, bevor ich den Pull Request merge. * Sehen Sie diese Pull Requests durch (Review), schlagen Sie Änderungen vor, oder segnen Sie sie ab (Approval). Bei den Sprachen, die ich nicht spreche, warte ich, bis mehrere andere die Übersetzung durchgesehen haben, bevor ich den Pull Request merge.
/// tip | "Tipp" /// tip | Tipp
Sie können <a href="https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request" class="external-link" target="_blank">Kommentare mit Änderungsvorschlägen</a> zu vorhandenen Pull Requests hinzufügen. Sie können <a href="https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request" class="external-link" target="_blank">Kommentare mit Änderungsvorschlägen</a> zu vorhandenen Pull Requests hinzufügen.
@ -303,7 +303,7 @@ Angenommen, Sie möchten eine Seite für eine Sprache übersetzen, die bereits
Im Spanischen lautet der Zwei-Buchstaben-Code `es`. Das Verzeichnis für spanische Übersetzungen befindet sich also unter `docs/es/`. Im Spanischen lautet der Zwei-Buchstaben-Code `es`. Das Verzeichnis für spanische Übersetzungen befindet sich also unter `docs/es/`.
/// tip | "Tipp" /// tip | Tipp
Die Haupt („offizielle“) Sprache ist Englisch und befindet sich unter `docs/en/`. Die Haupt („offizielle“) Sprache ist Englisch und befindet sich unter `docs/en/`.
@ -324,7 +324,7 @@ $ python ./scripts/docs.py live es
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Alternativ können Sie die Schritte des Skripts auch manuell ausführen. Alternativ können Sie die Schritte des Skripts auch manuell ausführen.
@ -360,7 +360,7 @@ docs/en/docs/features.md
docs/es/docs/features.md docs/es/docs/features.md
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass die einzige Änderung in Pfad und Dateiname der Sprachcode ist, von `en` zu `es`. Beachten Sie, dass die einzige Änderung in Pfad und Dateiname der Sprachcode ist, von `en` zu `es`.
@ -399,7 +399,7 @@ Obiges Kommando hat eine Datei `docs/ht/mkdocs.yml` mit einer Minimal-Konfigurat
INHERIT: ../en/mkdocs.yml INHERIT: ../en/mkdocs.yml
``` ```
/// tip | "Tipp" /// tip | Tipp
Sie können diese Datei mit diesem Inhalt auch einfach manuell erstellen. Sie können diese Datei mit diesem Inhalt auch einfach manuell erstellen.

8
docs/de/docs/deployment/concepts.md

@ -151,7 +151,7 @@ Und dennoch möchten Sie wahrscheinlich nicht, dass die Anwendung tot bleibt, we
Aber in den Fällen mit wirklich schwerwiegenden Fehlern, die den laufenden **Prozess** zum Absturz bringen, benötigen Sie eine externe Komponente, die den Prozess **neu startet**, zumindest ein paar Mal ... Aber in den Fällen mit wirklich schwerwiegenden Fehlern, die den laufenden **Prozess** zum Absturz bringen, benötigen Sie eine externe Komponente, die den Prozess **neu startet**, zumindest ein paar Mal ...
/// tip | "Tipp" /// tip | Tipp
... Obwohl es wahrscheinlich keinen Sinn macht, sie immer wieder neu zu starten, wenn die gesamte Anwendung einfach **sofort abstürzt**. Aber in diesen Fällen werden Sie es wahrscheinlich während der Entwicklung oder zumindest direkt nach dem Deployment bemerken. ... Obwohl es wahrscheinlich keinen Sinn macht, sie immer wieder neu zu starten, wenn die gesamte Anwendung einfach **sofort abstürzt**. Aber in diesen Fällen werden Sie es wahrscheinlich während der Entwicklung oder zumindest direkt nach dem Deployment bemerken.
@ -241,7 +241,7 @@ Hier sind einige mögliche Kombinationen und Strategien:
* **Cloud-Dienste**, welche das für Sie erledigen * **Cloud-Dienste**, welche das für Sie erledigen
* Der Cloud-Dienst wird wahrscheinlich **die Replikation für Sie übernehmen**. Er würde Sie möglicherweise **einen auszuführenden Prozess** oder ein **zu verwendendes Container-Image** definieren lassen, in jedem Fall wäre es höchstwahrscheinlich **ein einzelner Uvicorn-Prozess**, und der Cloud-Dienst wäre auch verantwortlich für die Replikation. * Der Cloud-Dienst wird wahrscheinlich **die Replikation für Sie übernehmen**. Er würde Sie möglicherweise **einen auszuführenden Prozess** oder ein **zu verwendendes Container-Image** definieren lassen, in jedem Fall wäre es höchstwahrscheinlich **ein einzelner Uvicorn-Prozess**, und der Cloud-Dienst wäre auch verantwortlich für die Replikation.
/// tip | "Tipp" /// tip | Tipp
Machen Sie sich keine Sorgen, wenn einige dieser Punkte zu **Containern**, Docker oder Kubernetes noch nicht viel Sinn ergeben. Machen Sie sich keine Sorgen, wenn einige dieser Punkte zu **Containern**, Docker oder Kubernetes noch nicht viel Sinn ergeben.
@ -263,7 +263,7 @@ Und Sie müssen sicherstellen, dass es sich um einen einzelnen Prozess handelt,
Natürlich gibt es Fälle, in denen es kein Problem darstellt, die Vorab-Schritte mehrmals auszuführen. In diesem Fall ist die Handhabung viel einfacher. Natürlich gibt es Fälle, in denen es kein Problem darstellt, die Vorab-Schritte mehrmals auszuführen. In diesem Fall ist die Handhabung viel einfacher.
/// tip | "Tipp" /// tip | Tipp
Bedenken Sie außerdem, dass Sie, abhängig von Ihrer Einrichtung, in manchen Fällen **gar keine Vorab-Schritte** benötigen, bevor Sie die Anwendung starten. Bedenken Sie außerdem, dass Sie, abhängig von Ihrer Einrichtung, in manchen Fällen **gar keine Vorab-Schritte** benötigen, bevor Sie die Anwendung starten.
@ -281,7 +281,7 @@ Hier sind einige mögliche Ideen:
* Ein Bash-Skript, das die Vorab-Schritte ausführt und dann Ihre Anwendung startet * Ein Bash-Skript, das die Vorab-Schritte ausführt und dann Ihre Anwendung startet
* Sie benötigen immer noch eine Möglichkeit, *dieses* Bash-Skript zu starten/neu zu starten, Fehler zu erkennen, usw. * Sie benötigen immer noch eine Möglichkeit, *dieses* Bash-Skript zu starten/neu zu starten, Fehler zu erkennen, usw.
/// tip | "Tipp" /// tip | Tipp
Konkretere Beispiele hierfür mit Containern gebe ich Ihnen in einem späteren Kapitel: [FastAPI in Containern – Docker](docker.md){.internal-link target=_blank}. Konkretere Beispiele hierfür mit Containern gebe ich Ihnen in einem späteren Kapitel: [FastAPI in Containern – Docker](docker.md){.internal-link target=_blank}.

16
docs/de/docs/deployment/docker.md

@ -4,7 +4,7 @@ Beim Deployment von FastAPI-Anwendungen besteht ein gängiger Ansatz darin, ein
Die Verwendung von Linux-Containern bietet mehrere Vorteile, darunter **Sicherheit**, **Replizierbarkeit**, **Einfachheit** und andere. Die Verwendung von Linux-Containern bietet mehrere Vorteile, darunter **Sicherheit**, **Replizierbarkeit**, **Einfachheit** und andere.
/// tip | "Tipp" /// tip | Tipp
Sie haben es eilig und kennen sich bereits aus? Springen Sie zum [`Dockerfile` unten 👇](#ein-docker-image-fur-fastapi-erstellen). Sie haben es eilig und kennen sich bereits aus? Springen Sie zum [`Dockerfile` unten 👇](#ein-docker-image-fur-fastapi-erstellen).
@ -231,7 +231,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
Da das Programm unter `/code` gestartet wird und sich darin das Verzeichnis `./app` mit Ihrem Code befindet, kann **Uvicorn** `app` sehen und aus `app.main` **importieren**. Da das Programm unter `/code` gestartet wird und sich darin das Verzeichnis `./app` mit Ihrem Code befindet, kann **Uvicorn** `app` sehen und aus `app.main` **importieren**.
/// tip | "Tipp" /// tip | Tipp
Lernen Sie, was jede Zeile bewirkt, indem Sie auf die Zahlenblasen im Code klicken. 👆 Lernen Sie, was jede Zeile bewirkt, indem Sie auf die Zahlenblasen im Code klicken. 👆
@ -305,7 +305,7 @@ $ docker build -t myimage .
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Beachten Sie das `.` am Ende, es entspricht `./` und teilt Docker mit, welches Verzeichnis zum Erstellen des Containerimages verwendet werden soll. Beachten Sie das `.` am Ende, es entspricht `./` und teilt Docker mit, welches Verzeichnis zum Erstellen des Containerimages verwendet werden soll.
@ -409,7 +409,7 @@ Wenn wir uns nur auf das **Containerimage** für eine FastAPI-Anwendung (und sp
Es könnte sich um einen anderen Container handeln, zum Beispiel mit <a href="https://traefik.io/" class="external-link" target="_blank">Traefik</a>, welcher **HTTPS** und **automatischen** Erwerb von **Zertifikaten** handhabt. Es könnte sich um einen anderen Container handeln, zum Beispiel mit <a href="https://traefik.io/" class="external-link" target="_blank">Traefik</a>, welcher **HTTPS** und **automatischen** Erwerb von **Zertifikaten** handhabt.
/// tip | "Tipp" /// tip | Tipp
Traefik verfügt über Integrationen mit Docker, Kubernetes und anderen, sodass Sie damit ganz einfach HTTPS für Ihre Container einrichten und konfigurieren können. Traefik verfügt über Integrationen mit Docker, Kubernetes und anderen, sodass Sie damit ganz einfach HTTPS für Ihre Container einrichten und konfigurieren können.
@ -441,7 +441,7 @@ Bei der Verwendung von Containern ist normalerweise eine Komponente vorhanden, *
Da diese Komponente die **Last** an Requests aufnehmen und diese (hoffentlich) **ausgewogen** auf die Worker verteilen würde, wird sie üblicherweise auch **Load Balancer** – Lastverteiler – genannt. Da diese Komponente die **Last** an Requests aufnehmen und diese (hoffentlich) **ausgewogen** auf die Worker verteilen würde, wird sie üblicherweise auch **Load Balancer** – Lastverteiler – genannt.
/// tip | "Tipp" /// tip | Tipp
Die gleiche **TLS-Terminierungsproxy**-Komponente, die für HTTPS verwendet wird, wäre wahrscheinlich auch ein **Load Balancer**. Die gleiche **TLS-Terminierungsproxy**-Komponente, die für HTTPS verwendet wird, wäre wahrscheinlich auch ein **Load Balancer**.
@ -544,7 +544,7 @@ Dieses Image wäre vor allem in den oben beschriebenen Situationen nützlich: [C
* <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>. * <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
/// warning | "Achtung" /// warning | Achtung
Es besteht eine hohe Wahrscheinlichkeit, dass Sie dieses oder ein ähnliches Basisimage **nicht** benötigen und es besser wäre, wenn Sie das Image von Grund auf neu erstellen würden, wie [oben beschrieben in: Ein Docker-Image für FastAPI erstellen](#ein-docker-image-fur-fastapi-erstellen). Es besteht eine hohe Wahrscheinlichkeit, dass Sie dieses oder ein ähnliches Basisimage **nicht** benötigen und es besser wäre, wenn Sie das Image von Grund auf neu erstellen würden, wie [oben beschrieben in: Ein Docker-Image für FastAPI erstellen](#ein-docker-image-fur-fastapi-erstellen).
@ -556,7 +556,7 @@ Es verfügt über **vernünftige Standardeinstellungen**, aber Sie können trotz
Es unterstützt auch die Ausführung von <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker#pre_start_path" class="external-link" target="_blank">**Vorab-Schritten vor dem Start** </a> mit einem Skript. Es unterstützt auch die Ausführung von <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker#pre_start_path" class="external-link" target="_blank">**Vorab-Schritten vor dem Start** </a> mit einem Skript.
/// tip | "Tipp" /// tip | Tipp
Um alle Konfigurationen und Optionen anzuzeigen, gehen Sie zur Docker-Image-Seite: <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>. Um alle Konfigurationen und Optionen anzuzeigen, gehen Sie zur Docker-Image-Seite: <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
@ -687,7 +687,7 @@ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
11. Führe den Befehl `uvicorn` aus und weise ihn an, das aus `app.main` importierte `app`-Objekt zu verwenden. 11. Führe den Befehl `uvicorn` aus und weise ihn an, das aus `app.main` importierte `app`-Objekt zu verwenden.
/// tip | "Tipp" /// tip | Tipp
Klicken Sie auf die Zahlenblasen, um zu sehen, was jede Zeile bewirkt. Klicken Sie auf die Zahlenblasen, um zu sehen, was jede Zeile bewirkt.

6
docs/de/docs/deployment/https.md

@ -4,7 +4,7 @@ Es ist leicht anzunehmen, dass HTTPS etwas ist, was einfach nur „aktiviert“
Aber es ist viel komplexer als das. Aber es ist viel komplexer als das.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie es eilig haben oder es Ihnen egal ist, fahren Sie mit den nächsten Abschnitten fort, um Schritt-für-Schritt-Anleitungen für die Einrichtung der verschiedenen Technologien zu erhalten. Wenn Sie es eilig haben oder es Ihnen egal ist, fahren Sie mit den nächsten Abschnitten fort, um Schritt-für-Schritt-Anleitungen für die Einrichtung der verschiedenen Technologien zu erhalten.
@ -71,7 +71,7 @@ In dem oder den DNS-Server(n) würden Sie einen Eintrag (einen „`A record`“)
Sie würden dies wahrscheinlich nur einmal tun, beim ersten Mal, wenn Sie alles einrichten. Sie würden dies wahrscheinlich nur einmal tun, beim ersten Mal, wenn Sie alles einrichten.
/// tip | "Tipp" /// tip | Tipp
Dieser Domainnamen-Aspekt liegt weit vor HTTPS, aber da alles von der Domain und der IP-Adresse abhängt, lohnt es sich, das hier zu erwähnen. Dieser Domainnamen-Aspekt liegt weit vor HTTPS, aber da alles von der Domain und der IP-Adresse abhängt, lohnt es sich, das hier zu erwähnen.
@ -121,7 +121,7 @@ Danach verfügen der Client und der Server über eine **verschlüsselte TCP-Verb
Und genau das ist **HTTPS**, es ist einfach **HTTP** innerhalb einer **sicheren TLS-Verbindung**, statt einer puren (unverschlüsselten) TCP-Verbindung. Und genau das ist **HTTPS**, es ist einfach **HTTP** innerhalb einer **sicheren TLS-Verbindung**, statt einer puren (unverschlüsselten) TCP-Verbindung.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass die Verschlüsselung der Kommunikation auf der **TCP-Ebene** und nicht auf der HTTP-Ebene erfolgt. Beachten Sie, dass die Verschlüsselung der Kommunikation auf der **TCP-Ebene** und nicht auf der HTTP-Ebene erfolgt.

4
docs/de/docs/deployment/manually.md

@ -36,7 +36,7 @@ $ pip install "uvicorn[standard]"
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Durch das Hinzufügen von `standard` installiert und verwendet Uvicorn einige empfohlene zusätzliche Abhängigkeiten. Durch das Hinzufügen von `standard` installiert und verwendet Uvicorn einige empfohlene zusätzliche Abhängigkeiten.
@ -96,7 +96,7 @@ Running on 0.0.0.0:8080 over http (CTRL + C to quit)
//// ////
/// warning | "Achtung" /// warning | Achtung
Denken Sie daran, die Option `--reload` zu entfernen, wenn Sie diese verwendet haben. Denken Sie daran, die Option `--reload` zu entfernen, wenn Sie diese verwendet haben.

4
docs/de/docs/deployment/versions.md

@ -42,7 +42,7 @@ Gemäß den Konventionen zur semantischen Versionierung könnte jede Version unt
FastAPI folgt auch der Konvention, dass jede „PATCH“-Versionsänderung für Bugfixes und abwärtskompatible Änderungen gedacht ist. FastAPI folgt auch der Konvention, dass jede „PATCH“-Versionsänderung für Bugfixes und abwärtskompatible Änderungen gedacht ist.
/// tip | "Tipp" /// tip | Tipp
Der „PATCH“ ist die letzte Zahl, zum Beispiel ist in `0.2.3` die PATCH-Version `3`. Der „PATCH“ ist die letzte Zahl, zum Beispiel ist in `0.2.3` die PATCH-Version `3`.
@ -56,7 +56,7 @@ fastapi>=0.45.0,<0.46.0
Nicht abwärtskompatible Änderungen und neue Funktionen werden in „MINOR“-Versionen hinzugefügt. Nicht abwärtskompatible Änderungen und neue Funktionen werden in „MINOR“-Versionen hinzugefügt.
/// tip | "Tipp" /// tip | Tipp
„MINOR“ ist die Zahl in der Mitte, zum Beispiel ist in `0.2.3` die MINOR-Version `2`. „MINOR“ ist die Zahl in der Mitte, zum Beispiel ist in `0.2.3` die MINOR-Version `2`.

2
docs/de/docs/help-fastapi.md

@ -228,7 +228,7 @@ Wenn Sie mir dabei helfen können, **helfen Sie mir, FastAPI am Laufen zu erhalt
Treten Sie dem 👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">Discord-Chatserver</a> 👥 bei und treffen Sie sich mit anderen Mitgliedern der FastAPI-Community. Treten Sie dem 👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">Discord-Chatserver</a> 👥 bei und treffen Sie sich mit anderen Mitgliedern der FastAPI-Community.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie Fragen haben, stellen Sie sie bei <a href="https://github.com/fastapi/fastapi/discussions/new?category=questions" class="external-link" target="_blank">GitHub Diskussionen</a>, es besteht eine viel bessere Chance, dass Sie hier Hilfe von den [FastAPI-Experten](fastapi-people.md#experten){.internal-link target=_blank} erhalten. Wenn Sie Fragen haben, stellen Sie sie bei <a href="https://github.com/fastapi/fastapi/discussions/new?category=questions" class="external-link" target="_blank">GitHub Diskussionen</a>, es besteht eine viel bessere Chance, dass Sie hier Hilfe von den [FastAPI-Experten](fastapi-people.md#experten){.internal-link target=_blank} erhalten.

4
docs/de/docs/how-to/custom-docs-ui-assets.md

@ -40,7 +40,7 @@ Und genau so für ReDoc ...
{!../../docs_src/custom_docs_ui/tutorial001.py!} {!../../docs_src/custom_docs_ui/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Die *Pfadoperation* für `swagger_ui_redirect` ist ein Hilfsmittel bei der Verwendung von OAuth2. Die *Pfadoperation* für `swagger_ui_redirect` ist ein Hilfsmittel bei der Verwendung von OAuth2.
@ -180,7 +180,7 @@ Und genau so für ReDoc ...
{!../../docs_src/custom_docs_ui/tutorial002.py!} {!../../docs_src/custom_docs_ui/tutorial002.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Die *Pfadoperation* für `swagger_ui_redirect` ist ein Hilfsmittel bei der Verwendung von OAuth2. Die *Pfadoperation* für `swagger_ui_redirect` ist ein Hilfsmittel bei der Verwendung von OAuth2.

8
docs/de/docs/how-to/custom-request-and-route.md

@ -6,7 +6,7 @@ Das kann insbesondere eine gute Alternative zur Logik in einer Middleware sein.
Wenn Sie beispielsweise den Requestbody lesen oder manipulieren möchten, bevor er von Ihrer Anwendung verarbeitet wird. Wenn Sie beispielsweise den Requestbody lesen oder manipulieren möchten, bevor er von Ihrer Anwendung verarbeitet wird.
/// danger | "Gefahr" /// danger | Gefahr
Dies ist eine „fortgeschrittene“ Funktion. Dies ist eine „fortgeschrittene“ Funktion.
@ -30,7 +30,7 @@ Und eine `APIRoute`-Unterklasse zur Verwendung dieser benutzerdefinierten Reques
### Eine benutzerdefinierte `GzipRequest`-Klasse erstellen ### Eine benutzerdefinierte `GzipRequest`-Klasse erstellen
/// tip | "Tipp" /// tip | Tipp
Dies ist nur ein einfaches Beispiel, um zu demonstrieren, wie es funktioniert. Wenn Sie Gzip-Unterstützung benötigen, können Sie die bereitgestellte [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank} verwenden. Dies ist nur ein einfaches Beispiel, um zu demonstrieren, wie es funktioniert. Wenn Sie Gzip-Unterstützung benötigen, können Sie die bereitgestellte [`GzipMiddleware`](../advanced/middleware.md#gzipmiddleware){.internal-link target=_blank} verwenden.
@ -60,7 +60,7 @@ Hier verwenden wir sie, um aus dem ursprünglichen Request einen `GzipRequest` z
{!../../docs_src/custom_request_and_route/tutorial001.py!} {!../../docs_src/custom_request_and_route/tutorial001.py!}
``` ```
/// note | "Technische Details" /// note | Technische Details
Ein `Request` hat ein `request.scope`-Attribut, welches einfach ein Python-`dict` ist, welches die mit dem Request verbundenen Metadaten enthält. Ein `Request` hat ein `request.scope`-Attribut, welches einfach ein Python-`dict` ist, welches die mit dem Request verbundenen Metadaten enthält.
@ -84,7 +84,7 @@ Aufgrund unserer Änderungen in `GzipRequest.body` wird der Requestbody jedoch b
## Zugriff auf den Requestbody in einem Exceptionhandler ## Zugriff auf den Requestbody in einem Exceptionhandler
/// tip | "Tipp" /// tip | Tipp
Um dasselbe Problem zu lösen, ist es wahrscheinlich viel einfacher, den `body` in einem benutzerdefinierten Handler für `RequestValidationError` zu verwenden ([Fehlerbehandlung](../tutorial/handling-errors.md#den-requestvalidationerror-body-verwenden){.internal-link target=_blank}). Um dasselbe Problem zu lösen, ist es wahrscheinlich viel einfacher, den `body` in einem benutzerdefinierten Handler für `RequestValidationError` zu verwenden ([Fehlerbehandlung](../tutorial/handling-errors.md#den-requestvalidationerror-body-verwenden){.internal-link target=_blank}).

4
docs/de/docs/how-to/graphql.md

@ -4,7 +4,7 @@ Da **FastAPI** auf dem **ASGI**-Standard basiert, ist es sehr einfach, jede **Gr
Sie können normale FastAPI-*Pfadoperationen* mit GraphQL in derselben Anwendung kombinieren. Sie können normale FastAPI-*Pfadoperationen* mit GraphQL in derselben Anwendung kombinieren.
/// tip | "Tipp" /// tip | Tipp
**GraphQL** löst einige sehr spezifische Anwendungsfälle. **GraphQL** löst einige sehr spezifische Anwendungsfälle.
@ -49,7 +49,7 @@ Frühere Versionen von Starlette enthielten eine `GraphQLApp`-Klasse zur Integra
Das wurde von Starlette deprecated, aber wenn Sie Code haben, der das verwendet, können Sie einfach zu <a href="https://github.com/ciscorn/starlette-graphene3" class="external-link" target="_blank">starlette-graphene3</a> **migrieren**, welches denselben Anwendungsfall abdeckt und über eine **fast identische Schnittstelle** verfügt. Das wurde von Starlette deprecated, aber wenn Sie Code haben, der das verwendet, können Sie einfach zu <a href="https://github.com/ciscorn/starlette-graphene3" class="external-link" target="_blank">starlette-graphene3</a> **migrieren**, welches denselben Anwendungsfall abdeckt und über eine **fast identische Schnittstelle** verfügt.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie GraphQL benötigen, würde ich Ihnen trotzdem empfehlen, sich <a href="https://strawberry.rocks/" class="external-link" target="_blank">Strawberry</a> anzuschauen, da es auf Typannotationen basiert, statt auf benutzerdefinierten Klassen und Typen. Wenn Sie GraphQL benötigen, würde ich Ihnen trotzdem empfehlen, sich <a href="https://strawberry.rocks/" class="external-link" target="_blank">Strawberry</a> anzuschauen, da es auf Typannotationen basiert, statt auf benutzerdefinierten Klassen und Typen.

2
docs/de/docs/how-to/index.md

@ -6,7 +6,7 @@ Die meisten dieser Ideen sind mehr oder weniger **unabhängig**, und in den meis
Wenn etwas für Ihr Projekt interessant und nützlich erscheint, lesen Sie es, andernfalls überspringen Sie es einfach. Wenn etwas für Ihr Projekt interessant und nützlich erscheint, lesen Sie es, andernfalls überspringen Sie es einfach.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie strukturiert **FastAPI lernen** möchten (empfohlen), lesen Sie stattdessen Kapitel für Kapitel das [Tutorial – Benutzerhandbuch](../tutorial/index.md){.internal-link target=_blank}. Wenn Sie strukturiert **FastAPI lernen** möchten (empfohlen), lesen Sie stattdessen Kapitel für Kapitel das [Tutorial – Benutzerhandbuch](../tutorial/index.md){.internal-link target=_blank}.

10
docs/de/docs/python-types.md

@ -12,7 +12,7 @@ Dies ist lediglich eine **schnelle Anleitung / Auffrischung** über Pythons Typh
Aber selbst wenn Sie **FastAPI** nie verwenden, wird es für Sie nützlich sein, ein wenig darüber zu lernen. Aber selbst wenn Sie **FastAPI** nie verwenden, wird es für Sie nützlich sein, ein wenig darüber zu lernen.
/// note | "Hinweis" /// note | Hinweis
Wenn Sie ein Python-Experte sind und bereits alles über Typhinweise wissen, überspringen Sie dieses Kapitel und fahren Sie mit dem nächsten fort. Wenn Sie ein Python-Experte sind und bereits alles über Typhinweise wissen, überspringen Sie dieses Kapitel und fahren Sie mit dem nächsten fort.
@ -195,7 +195,7 @@ Da die Liste ein Typ ist, welcher innere Typen enthält, werden diese von eckige
//// ////
/// tip | "Tipp" /// tip | Tipp
Die inneren Typen in den eckigen Klammern werden als „Typ-Parameter“ bezeichnet. Die inneren Typen in den eckigen Klammern werden als „Typ-Parameter“ bezeichnet.
@ -205,7 +205,7 @@ In diesem Fall ist `str` der Typ-Parameter, der an `List` übergeben wird (oder
Das bedeutet: Die Variable `items` ist eine Liste – `list` – und jedes der Elemente in dieser Liste ist ein String – `str`. Das bedeutet: Die Variable `items` ist eine Liste – `list` – und jedes der Elemente in dieser Liste ist ein String – `str`.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie Python 3.9 oder höher verwenden, müssen Sie `List` nicht von `typing` importieren, Sie können stattdessen den regulären `list`-Typ verwenden. Wenn Sie Python 3.9 oder höher verwenden, müssen Sie `List` nicht von `typing` importieren, Sie können stattdessen den regulären `list`-Typ verwenden.
@ -495,7 +495,7 @@ Um mehr über <a href="https://pydantic-docs.helpmanual.io/" class="external-lin
Viel mehr von all dem werden Sie in praktischer Anwendung im [Tutorial - Benutzerhandbuch](tutorial/index.md){.internal-link target=_blank} sehen. Viel mehr von all dem werden Sie in praktischer Anwendung im [Tutorial - Benutzerhandbuch](tutorial/index.md){.internal-link target=_blank} sehen.
/// tip | "Tipp" /// tip | Tipp
Pydantic verhält sich speziell, wenn Sie `Optional` oder `Union[Etwas, None]` ohne einen Default-Wert verwenden. Sie können darüber in der Pydantic Dokumentation unter <a href="https://docs.pydantic.dev/2.3/usage/models/#required-fields" class="external-link" target="_blank">Required fields</a> mehr erfahren. Pydantic verhält sich speziell, wenn Sie `Optional` oder `Union[Etwas, None]` ohne einen Default-Wert verwenden. Sie können darüber in der Pydantic Dokumentation unter <a href="https://docs.pydantic.dev/2.3/usage/models/#required-fields" class="external-link" target="_blank">Required fields</a> mehr erfahren.
@ -537,7 +537,7 @@ Im Moment müssen Sie nur wissen, dass `Annotated` existiert, und dass es Standa
Später werden Sie sehen, wie **mächtig** es sein kann. Später werden Sie sehen, wie **mächtig** es sein kann.
/// tip | "Tipp" /// tip | Tipp
Der Umstand, dass es **Standard-Python** ist, bedeutet, dass Sie immer noch die **bestmögliche Entwickler-Erfahrung** in ihrem Editor haben, sowie mit den Tools, die Sie nutzen, um ihren Code zu analysieren, zu refaktorisieren, usw. ✨ Der Umstand, dass es **Standard-Python** ist, bedeutet, dass Sie immer noch die **bestmögliche Entwickler-Erfahrung** in ihrem Editor haben, sowie mit den Tools, die Sie nutzen, um ihren Code zu analysieren, zu refaktorisieren, usw. ✨

4
docs/de/docs/tutorial/background-tasks.md

@ -83,7 +83,7 @@ Die Verwendung von `BackgroundTasks` funktioniert auch mit dem <abbr title="Einb
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -97,7 +97,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

20
docs/de/docs/tutorial/bigger-applications.md

@ -29,7 +29,7 @@ Nehmen wir an, Sie haben eine Dateistruktur wie diese:
│   └── admin.py │   └── admin.py
``` ```
/// tip | "Tipp" /// tip | Tipp
Es gibt mehrere `__init__.py`-Dateien: eine in jedem Verzeichnis oder Unterverzeichnis. Es gibt mehrere `__init__.py`-Dateien: eine in jedem Verzeichnis oder Unterverzeichnis.
@ -105,7 +105,7 @@ Alle die gleichen Optionen werden unterstützt.
Alle die gleichen `parameters`, `responses`, `dependencies`, `tags`, usw. Alle die gleichen `parameters`, `responses`, `dependencies`, `tags`, usw.
/// tip | "Tipp" /// tip | Tipp
In diesem Beispiel heißt die Variable `router`, aber Sie können ihr einen beliebigen Namen geben. In diesem Beispiel heißt die Variable `router`, aber Sie können ihr einen beliebigen Namen geben.
@ -139,7 +139,7 @@ Wir werden nun eine einfache Abhängigkeit verwenden, um einen benutzerdefiniert
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -151,7 +151,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Um dieses Beispiel zu vereinfachen, verwenden wir einen erfundenen Header. Um dieses Beispiel zu vereinfachen, verwenden wir einen erfundenen Header.
@ -201,7 +201,7 @@ Wir können auch eine Liste von `tags` und zusätzliche `responses` hinzufügen,
Und wir können eine Liste von `dependencies` hinzufügen, die allen *Pfadoperationen* im Router hinzugefügt und für jeden an sie gerichteten Request ausgeführt/aufgelöst werden. Und wir können eine Liste von `dependencies` hinzufügen, die allen *Pfadoperationen* im Router hinzugefügt und für jeden an sie gerichteten Request ausgeführt/aufgelöst werden.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass ähnlich wie bei [Abhängigkeiten in *Pfadoperation-Dekoratoren*](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} kein Wert an Ihre *Pfadoperation-Funktion* übergeben wird. Beachten Sie, dass ähnlich wie bei [Abhängigkeiten in *Pfadoperation-Dekoratoren*](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} kein Wert an Ihre *Pfadoperation-Funktion* übergeben wird.
@ -222,7 +222,7 @@ Das Endergebnis ist, dass die Pfade für diese Artikel jetzt wie folgt lauten:
* Zuerst werden die Router-Abhängigkeiten ausgeführt, dann die [`dependencies` im Dekorator](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} und dann die normalen Parameterabhängigkeiten. * Zuerst werden die Router-Abhängigkeiten ausgeführt, dann die [`dependencies` im Dekorator](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank} und dann die normalen Parameterabhängigkeiten.
* Sie können auch [`Security`-Abhängigkeiten mit `scopes`](../advanced/security/oauth2-scopes.md){.internal-link target=_blank} hinzufügen. * Sie können auch [`Security`-Abhängigkeiten mit `scopes`](../advanced/security/oauth2-scopes.md){.internal-link target=_blank} hinzufügen.
/// tip | "Tipp" /// tip | Tipp
`dependencies` im `APIRouter` können beispielsweise verwendet werden, um eine Authentifizierung für eine ganze Gruppe von *Pfadoperationen* zu erfordern. Selbst wenn die Abhängigkeiten nicht jeder einzeln hinzugefügt werden. `dependencies` im `APIRouter` können beispielsweise verwendet werden, um eine Authentifizierung für eine ganze Gruppe von *Pfadoperationen* zu erfordern. Selbst wenn die Abhängigkeiten nicht jeder einzeln hinzugefügt werden.
@ -248,7 +248,7 @@ Daher verwenden wir einen relativen Import mit `..` für die Abhängigkeiten:
#### Wie relative Importe funktionieren #### Wie relative Importe funktionieren
/// tip | "Tipp" /// tip | Tipp
Wenn Sie genau wissen, wie Importe funktionieren, fahren Sie mit dem nächsten Abschnitt unten fort. Wenn Sie genau wissen, wie Importe funktionieren, fahren Sie mit dem nächsten Abschnitt unten fort.
@ -319,7 +319,7 @@ Aber wir können immer noch _mehr_ `tags` hinzufügen, die auf eine bestimmte *P
{!../../docs_src/bigger_applications/app/routers/items.py!} {!../../docs_src/bigger_applications/app/routers/items.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Diese letzte Pfadoperation wird eine Kombination von Tags haben: `["items", "custom"]`. Diese letzte Pfadoperation wird eine Kombination von Tags haben: `["items", "custom"]`.
@ -441,7 +441,7 @@ Mit `app.include_router()` können wir jeden `APIRouter` zur Hauptanwendung `Fas
Es wird alle Routen von diesem Router als Teil von dieser inkludieren. Es wird alle Routen von diesem Router als Teil von dieser inkludieren.
/// note | "Technische Details" /// note | Technische Details
Tatsächlich wird intern eine *Pfadoperation* für jede *Pfadoperation* erstellt, die im `APIRouter` deklariert wurde. Tatsächlich wird intern eine *Pfadoperation* für jede *Pfadoperation* erstellt, die im `APIRouter` deklariert wurde.
@ -504,7 +504,7 @@ Hier machen wir es ... nur um zu zeigen, dass wir es können 🤷:
und es wird korrekt funktionieren, zusammen mit allen anderen *Pfadoperationen*, die mit `app.include_router()` hinzugefügt wurden. und es wird korrekt funktionieren, zusammen mit allen anderen *Pfadoperationen*, die mit `app.include_router()` hinzugefügt wurden.
/// info | "Sehr technische Details" /// info | Sehr technische Details
**Hinweis**: Dies ist ein sehr technisches Detail, das Sie wahrscheinlich **einfach überspringen** können. **Hinweis**: Dies ist ein sehr technisches Detail, das Sie wahrscheinlich **einfach überspringen** können.

16
docs/de/docs/tutorial/body-fields.md

@ -32,7 +32,7 @@ Importieren Sie es zuerst:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -46,7 +46,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -58,7 +58,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// warning | "Achtung" /// warning | Achtung
Beachten Sie, dass `Field` direkt von `pydantic` importiert wird, nicht von `fastapi`, wie die anderen (`Query`, `Path`, `Body`, usw.) Beachten Sie, dass `Field` direkt von `pydantic` importiert wird, nicht von `fastapi`, wie die anderen (`Query`, `Path`, `Body`, usw.)
@ -94,7 +94,7 @@ Dann können Sie `Field` mit Modellattributen deklarieren:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -108,7 +108,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -122,7 +122,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
`Field` funktioniert genauso wie `Query`, `Path` und `Body`, es hat die gleichen Parameter, usw. `Field` funktioniert genauso wie `Query`, `Path` und `Body`, es hat die gleichen Parameter, usw.
/// note | "Technische Details" /// note | Technische Details
Tatsächlich erstellen `Query`, `Path` und andere, die sie kennenlernen werden, Instanzen von Unterklassen einer allgemeinen Klasse `Param`, die ihrerseits eine Unterklasse von Pydantics `FieldInfo`-Klasse ist. Tatsächlich erstellen `Query`, `Path` und andere, die sie kennenlernen werden, Instanzen von Unterklassen einer allgemeinen Klasse `Param`, die ihrerseits eine Unterklasse von Pydantics `FieldInfo`-Klasse ist.
@ -134,7 +134,7 @@ Denken Sie daran, dass `Query`, `Path` und andere von `fastapi` tatsächlich Fun
/// ///
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass jedes Modellattribut mit einem Typ, Defaultwert und `Field` die gleiche Struktur hat wie ein Parameter einer Pfadoperation-Funktion, nur mit `Field` statt `Path`, `Query`, `Body`. Beachten Sie, dass jedes Modellattribut mit einem Typ, Defaultwert und `Field` die gleiche Struktur hat wie ein Parameter einer Pfadoperation-Funktion, nur mit `Field` statt `Path`, `Query`, `Body`.
@ -146,7 +146,7 @@ Sie können zusätzliche Information in `Field`, `Query`, `Body`, usw. deklarier
Sie werden später mehr darüber lernen, wie man zusätzliche Information unterbringt, wenn Sie lernen, Beispiele zu deklarieren. Sie werden später mehr darüber lernen, wie man zusätzliche Information unterbringt, wenn Sie lernen, Beispiele zu deklarieren.
/// warning | "Achtung" /// warning | Achtung
Extra-Schlüssel, die `Field` überreicht werden, werden auch im resultierenden OpenAPI-Schema Ihrer Anwendung gelistet. Da diese Schlüssel nicht notwendigerweise Teil der OpenAPI-Spezifikation sind, könnten einige OpenAPI-Tools, wie etwa [der OpenAPI-Validator](https://validator.swagger.io/), nicht mit Ihrem generierten Schema funktionieren. Extra-Schlüssel, die `Field` überreicht werden, werden auch im resultierenden OpenAPI-Schema Ihrer Anwendung gelistet. Da diese Schlüssel nicht notwendigerweise Teil der OpenAPI-Spezifikation sind, könnten einige OpenAPI-Tools, wie etwa [der OpenAPI-Validator](https://validator.swagger.io/), nicht mit Ihrem generierten Schema funktionieren.

4
docs/de/docs/tutorial/body-multiple-params.md

@ -10,7 +10,7 @@ Und Sie können auch Body-Parameter als optional kennzeichnen, indem Sie den Def
{* ../../docs_src/body_multiple_params/tutorial001_an_py310.py hl[18:20] *} {* ../../docs_src/body_multiple_params/tutorial001_an_py310.py hl[18:20] *}
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass in diesem Fall das `item`, welches vom Body genommen wird, optional ist. Da es `None` als Defaultwert hat. Beachten Sie, dass in diesem Fall das `item`, welches vom Body genommen wird, optional ist. Da es `None` als Defaultwert hat.
@ -52,7 +52,7 @@ Es wird deshalb die Parameternamen als Schlüssel (Feldnamen) im Body verwenden,
} }
``` ```
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass, obwohl `item` wie zuvor deklariert wurde, es nun unter einem Schlüssel `item` im Body erwartet wird. Beachten Sie, dass, obwohl `item` wie zuvor deklariert wurde, es nun unter einem Schlüssel `item` im Body erwartet wird.

2
docs/de/docs/tutorial/body-nested-models.md

@ -420,7 +420,7 @@ Im folgenden Beispiel akzeptieren Sie irgendein `dict`, solange es `int`-Schlüs
//// ////
/// tip | "Tipp" /// tip | Tipp
Bedenken Sie, dass JSON nur `str` als Schlüssel unterstützt. Bedenken Sie, dass JSON nur `str` als Schlüssel unterstützt.

6
docs/de/docs/tutorial/body-updates.md

@ -54,7 +54,7 @@ Sie können auch die <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/
Das bedeutet, sie senden nur die Daten, die Sie aktualisieren wollen, der Rest bleibt unverändert. Das bedeutet, sie senden nur die Daten, die Sie aktualisieren wollen, der Rest bleibt unverändert.
/// note | "Hinweis" /// note | Hinweis
`PATCH` wird seltener verwendet und ist weniger bekannt als `PUT`. `PATCH` wird seltener verwendet und ist weniger bekannt als `PUT`.
@ -185,7 +185,7 @@ Zusammengefasst, um Teil-Ersetzungen vorzunehmen:
//// ////
/// tip | "Tipp" /// tip | Tipp
Sie können tatsächlich die gleiche Technik mit einer HTTP `PUT` Operation verwenden. Sie können tatsächlich die gleiche Technik mit einer HTTP `PUT` Operation verwenden.
@ -193,7 +193,7 @@ Aber dieses Beispiel verwendet `PATCH`, da dieses für solche Anwendungsfälle g
/// ///
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass das hereinkommende Modell immer noch validiert wird. Beachten Sie, dass das hereinkommende Modell immer noch validiert wird.

4
docs/de/docs/tutorial/body.md

@ -149,7 +149,7 @@ Aber Sie bekommen die gleiche Editor-Unterstützung in <a href="https://www.jetb
<img src="/img/tutorial/body/image05.png"> <img src="/img/tutorial/body/image05.png">
/// tip | "Tipp" /// tip | Tipp
Wenn Sie <a href="https://www.jetbrains.com/pycharm/" class="external-link" target="_blank">PyCharm</a> als Ihren Editor verwenden, probieren Sie das <a href="https://github.com/koxudaxi/pydantic-pycharm-plugin/" class="external-link" target="_blank">Pydantic PyCharm Plugin</a> aus. Wenn Sie <a href="https://www.jetbrains.com/pycharm/" class="external-link" target="_blank">PyCharm</a> als Ihren Editor verwenden, probieren Sie das <a href="https://github.com/koxudaxi/pydantic-pycharm-plugin/" class="external-link" target="_blank">Pydantic PyCharm Plugin</a> aus.
@ -233,7 +233,7 @@ Die Funktionsparameter werden wie folgt erkannt:
* Wenn der Parameter ein **einfacher Typ** ist (wie `int`, `float`, `str`, `bool`, usw.), wird er als **Query**-Parameter interpretiert. * Wenn der Parameter ein **einfacher Typ** ist (wie `int`, `float`, `str`, `bool`, usw.), wird er als **Query**-Parameter interpretiert.
* Wenn der Parameter vom Typ eines **Pydantic-Modells** ist, wird er als Request**body** interpretiert. * Wenn der Parameter vom Typ eines **Pydantic-Modells** ist, wird er als Request**body** interpretiert.
/// note | "Hinweis" /// note | Hinweis
FastAPI weiß, dass der Wert von `q` nicht erforderlich ist, wegen des definierten Defaultwertes `= None` FastAPI weiß, dass der Wert von `q` nicht erforderlich ist, wegen des definierten Defaultwertes `= None`

10
docs/de/docs/tutorial/cookie-params.md

@ -32,7 +32,7 @@ Importieren Sie zuerst `Cookie`:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -46,7 +46,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -90,7 +90,7 @@ Der erste Wert ist der Typ. Sie können `Cookie` die gehabten Extra Validierungs
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -104,7 +104,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -116,7 +116,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// note | "Technische Details" /// note | Technische Details
`Cookie` ist eine Schwesterklasse von `Path` und `Query`. Sie erbt von derselben gemeinsamen `Param`-Elternklasse. `Cookie` ist eine Schwesterklasse von `Path` und `Query`. Sie erbt von derselben gemeinsamen `Param`-Elternklasse.

42
docs/de/docs/tutorial/dependencies/classes-as-dependencies.md

@ -32,7 +32,7 @@ Im vorherigen Beispiel haben wir ein `dict` von unserer Abhängigkeit („Depend
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -46,7 +46,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -145,7 +145,7 @@ Dann können wir das „Dependable“ `common_parameters` der Abhängigkeit von
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -159,7 +159,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -199,7 +199,7 @@ Achten Sie auf die Methode `__init__`, die zum Erstellen der Instanz der Klasse
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -213,7 +213,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -253,7 +253,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -267,7 +267,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -319,7 +319,7 @@ Jetzt können Sie Ihre Abhängigkeit mithilfe dieser Klasse deklarieren.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -333,7 +333,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -361,7 +361,7 @@ commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -397,7 +397,7 @@ commons: Annotated[CommonQueryParams, ...
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -423,7 +423,7 @@ commons: Annotated[Any, Depends(CommonQueryParams)]
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -463,7 +463,7 @@ commons = Depends(CommonQueryParams)
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -477,7 +477,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -507,7 +507,7 @@ commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -535,7 +535,7 @@ commons: Annotated[CommonQueryParams, Depends(CommonQueryParams)]
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -559,7 +559,7 @@ commons: Annotated[CommonQueryParams, Depends()]
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -601,7 +601,7 @@ Dasselbe Beispiel würde dann so aussehen:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -615,7 +615,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -629,7 +629,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
... und **FastAPI** wird wissen, was zu tun ist. ... und **FastAPI** wird wissen, was zu tun ist.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie das eher verwirrt, als Ihnen zu helfen, ignorieren Sie es, Sie *brauchen* es nicht. Wenn Sie das eher verwirrt, als Ihnen zu helfen, ignorieren Sie es, Sie *brauchen* es nicht.

10
docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md

@ -32,7 +32,7 @@ Es sollte eine `list`e von `Depends()` sein:
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -46,7 +46,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
Diese Abhängigkeiten werden auf die gleiche Weise wie normale Abhängigkeiten ausgeführt/aufgelöst. Aber ihr Wert (falls sie einen zurückgeben) wird nicht an Ihre *Pfadoperation-Funktion* übergeben. Diese Abhängigkeiten werden auf die gleiche Weise wie normale Abhängigkeiten ausgeführt/aufgelöst. Aber ihr Wert (falls sie einen zurückgeben) wird nicht an Ihre *Pfadoperation-Funktion* übergeben.
/// tip | "Tipp" /// tip | Tipp
Einige Editoren prüfen, ob Funktionsparameter nicht verwendet werden, und zeigen das als Fehler an. Einige Editoren prüfen, ob Funktionsparameter nicht verwendet werden, und zeigen das als Fehler an.
@ -90,7 +90,7 @@ Sie können Anforderungen für einen Request (wie Header) oder andere Unterabhä
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -124,7 +124,7 @@ Die Abhängigkeiten können Exceptions `raise`n, genau wie normale Abhängigkeit
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -160,7 +160,7 @@ Sie können also eine normale Abhängigkeit (die einen Wert zurückgibt), die Si
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

26
docs/de/docs/tutorial/dependencies/dependencies-with-yield.md

@ -4,13 +4,13 @@ FastAPI unterstützt Abhängigkeiten, die nach Abschluss einige <abbr title="Man
Verwenden Sie dazu `yield` statt `return` und schreiben Sie die zusätzlichen Schritte / den zusätzlichen Code danach. Verwenden Sie dazu `yield` statt `return` und schreiben Sie die zusätzlichen Schritte / den zusätzlichen Code danach.
/// tip | "Tipp" /// tip | Tipp
Stellen Sie sicher, dass Sie `yield` nur einmal pro Abhängigkeit verwenden. Stellen Sie sicher, dass Sie `yield` nur einmal pro Abhängigkeit verwenden.
/// ///
/// note | "Technische Details" /// note | Technische Details
Jede Funktion, die dekoriert werden kann mit: Jede Funktion, die dekoriert werden kann mit:
@ -45,7 +45,7 @@ Der auf die `yield`-Anweisung folgende Code wird ausgeführt, nachdem die Respon
{!../../docs_src/dependencies/tutorial007.py!} {!../../docs_src/dependencies/tutorial007.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Sie können `async`hrone oder reguläre Funktionen verwenden. Sie können `async`hrone oder reguläre Funktionen verwenden.
@ -93,7 +93,7 @@ Beispielsweise kann `dependency_c` von `dependency_b` und `dependency_b` von `de
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -129,7 +129,7 @@ Und wiederum benötigt `dependency_b` den Wert von `dependency_a` (hier `dep_a`
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -149,7 +149,7 @@ Sie können beliebige Kombinationen von Abhängigkeiten haben.
**FastAPI** stellt sicher, dass alles in der richtigen Reihenfolge ausgeführt wird. **FastAPI** stellt sicher, dass alles in der richtigen Reihenfolge ausgeführt wird.
/// note | "Technische Details" /// note | Technische Details
Dieses funktioniert dank Pythons <a href="https://docs.python.org/3/library/contextlib.html" class="external-link" target="_blank">Kontextmanager</a>. Dieses funktioniert dank Pythons <a href="https://docs.python.org/3/library/contextlib.html" class="external-link" target="_blank">Kontextmanager</a>.
@ -163,7 +163,7 @@ Sie haben gesehen, dass Ihre Abhängigkeiten `yield` verwenden können und `try`
Auf die gleiche Weise könnten Sie im Exit-Code nach dem `yield` eine `HTTPException` oder ähnliches auslösen. Auf die gleiche Weise könnten Sie im Exit-Code nach dem `yield` eine `HTTPException` oder ähnliches auslösen.
/// tip | "Tipp" /// tip | Tipp
Dies ist eine etwas fortgeschrittene Technik, die Sie in den meisten Fällen nicht wirklich benötigen, da Sie Exceptions (einschließlich `HTTPException`) innerhalb des restlichen Anwendungscodes auslösen können, beispielsweise in der *Pfadoperation-Funktion*. Dies ist eine etwas fortgeschrittene Technik, die Sie in den meisten Fällen nicht wirklich benötigen, da Sie Exceptions (einschließlich `HTTPException`) innerhalb des restlichen Anwendungscodes auslösen können, beispielsweise in der *Pfadoperation-Funktion*.
@ -189,7 +189,7 @@ Aber es ist für Sie da, wenn Sie es brauchen. 🤓
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -250,7 +250,7 @@ Nachdem eine dieser Responses gesendet wurde, kann keine weitere Response gesend
/// ///
/// tip | "Tipp" /// tip | Tipp
Obiges Diagramm verwendet `HTTPException`, aber Sie können auch jede andere Exception auslösen, die Sie in einer Abhängigkeit mit `yield` abfangen, oder mit einem [benutzerdefinierten Exceptionhandler](../handling-errors.md#benutzerdefinierte-exceptionhandler-definieren){.internal-link target=_blank} erstellt haben. Obiges Diagramm verwendet `HTTPException`, aber Sie können auch jede andere Exception auslösen, die Sie in einer Abhängigkeit mit `yield` abfangen, oder mit einem [benutzerdefinierten Exceptionhandler](../handling-errors.md#benutzerdefinierte-exceptionhandler-definieren){.internal-link target=_blank} erstellt haben.
@ -260,7 +260,7 @@ Wenn Sie eine Exception auslösen, wird diese mit yield an die Abhängigkeiten
## Abhängigkeiten mit `yield`, `HTTPException` und Hintergrundtasks ## Abhängigkeiten mit `yield`, `HTTPException` und Hintergrundtasks
/// warning | "Achtung" /// warning | Achtung
Sie benötigen diese technischen Details höchstwahrscheinlich nicht, Sie können diesen Abschnitt überspringen und weiter unten fortfahren. Sie benötigen diese technischen Details höchstwahrscheinlich nicht, Sie können diesen Abschnitt überspringen und weiter unten fortfahren.
@ -274,7 +274,7 @@ Dies wurde hauptsächlich so konzipiert, damit die gleichen Objekte, die durch A
Da dies jedoch bedeuten würde, darauf zu warten, dass die Response durch das Netzwerk reist, während eine Ressource unnötigerweise in einer Abhängigkeit mit yield gehalten wird (z. B. eine Datenbankverbindung), wurde dies in FastAPI 0.106.0 geändert. Da dies jedoch bedeuten würde, darauf zu warten, dass die Response durch das Netzwerk reist, während eine Ressource unnötigerweise in einer Abhängigkeit mit yield gehalten wird (z. B. eine Datenbankverbindung), wurde dies in FastAPI 0.106.0 geändert.
/// tip | "Tipp" /// tip | Tipp
Darüber hinaus handelt es sich bei einem Hintergrundtask normalerweise um einen unabhängigen Satz von Logik, der separat behandelt werden sollte, mit eigenen Ressourcen (z. B. einer eigenen Datenbankverbindung). Darüber hinaus handelt es sich bei einem Hintergrundtask normalerweise um einen unabhängigen Satz von Logik, der separat behandelt werden sollte, mit eigenen Ressourcen (z. B. einer eigenen Datenbankverbindung).
@ -308,7 +308,7 @@ Wenn Sie eine Abhängigkeit mit `yield` erstellen, erstellt **FastAPI** dafür i
### Kontextmanager in Abhängigkeiten mit `yield` verwenden ### Kontextmanager in Abhängigkeiten mit `yield` verwenden
/// warning | "Achtung" /// warning | Achtung
Dies ist mehr oder weniger eine „fortgeschrittene“ Idee. Dies ist mehr oder weniger eine „fortgeschrittene“ Idee.
@ -324,7 +324,7 @@ Sie können solche auch innerhalb von **FastAPI**-Abhängigkeiten mit `yield` ve
{!../../docs_src/dependencies/tutorial010.py!} {!../../docs_src/dependencies/tutorial010.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Andere Möglichkeiten, einen Kontextmanager zu erstellen, sind: Andere Möglichkeiten, einen Kontextmanager zu erstellen, sind:

2
docs/de/docs/tutorial/dependencies/global-dependencies.md

@ -24,7 +24,7 @@ In diesem Fall werden sie auf alle *Pfadoperationen* in der Anwendung angewendet
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

18
docs/de/docs/tutorial/dependencies/index.md

@ -56,7 +56,7 @@ Es handelt sich einfach um eine Funktion, die die gleichen Parameter entgegennim
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -70,7 +70,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -138,7 +138,7 @@ Bitte [aktualisieren Sie FastAPI](../../deployment/versions.md#upgrade-der-fasta
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -152,7 +152,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -194,7 +194,7 @@ So wie auch `Body`, `Query`, usw., verwenden Sie `Depends` mit den Parametern Ih
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -208,7 +208,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -230,7 +230,7 @@ Sie **rufen diese nicht direkt auf** (fügen Sie am Ende keine Klammern hinzu),
Und diese Funktion akzeptiert Parameter auf die gleiche Weise wie *Pfadoperation-Funktionen*. Und diese Funktion akzeptiert Parameter auf die gleiche Weise wie *Pfadoperation-Funktionen*.
/// tip | "Tipp" /// tip | Tipp
Im nächsten Kapitel erfahren Sie, welche anderen „Dinge“, außer Funktionen, Sie als Abhängigkeiten verwenden können. Im nächsten Kapitel erfahren Sie, welche anderen „Dinge“, außer Funktionen, Sie als Abhängigkeiten verwenden können.
@ -299,7 +299,7 @@ Da wir jedoch `Annotated` verwenden, können wir diesen `Annotated`-Wert in eine
//// ////
/// tip | "Tipp" /// tip | Tipp
Das ist schlicht Standard-Python, es wird als „Typalias“ bezeichnet und ist eigentlich nicht **FastAPI**-spezifisch. Das ist schlicht Standard-Python, es wird als „Typalias“ bezeichnet und ist eigentlich nicht **FastAPI**-spezifisch.
@ -321,7 +321,7 @@ Und Sie können Abhängigkeiten mit `async def` innerhalb normaler `def`-*Pfadop
Es spielt keine Rolle. **FastAPI** weiß, was zu tun ist. Es spielt keine Rolle. **FastAPI** weiß, was zu tun ist.
/// note | "Hinweis" /// note | Hinweis
Wenn Ihnen das nichts sagt, lesen Sie den [Async: *„In Eile?“*](../../async.md#in-eile){.internal-link target=_blank}-Abschnitt über `async` und `await` in der Dokumentation. Wenn Ihnen das nichts sagt, lesen Sie den [Async: *„In Eile?“*](../../async.md#in-eile){.internal-link target=_blank}-Abschnitt über `async` und `await` in der Dokumentation.

16
docs/de/docs/tutorial/dependencies/sub-dependencies.md

@ -36,7 +36,7 @@ Sie könnten eine erste Abhängigkeit („Dependable“) wie folgt erstellen:
//// tab | Python 3.10 nicht annotiert //// tab | Python 3.10 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -50,7 +50,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -96,7 +96,7 @@ Dann können Sie eine weitere Abhängigkeitsfunktion (ein „Dependable“) erst
//// tab | Python 3.10 nicht annotiert //// tab | Python 3.10 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -110,7 +110,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -159,7 +159,7 @@ Diese Abhängigkeit verwenden wir nun wie folgt:
//// tab | Python 3.10 nicht annotiert //// tab | Python 3.10 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -173,7 +173,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -223,7 +223,7 @@ async def needy_dependency(fresh_value: Annotated[str, Depends(get_value, use_ca
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -244,7 +244,7 @@ Einfach Funktionen, die genauso aussehen wie *Pfadoperation-Funktionen*.
Dennoch ist es sehr mächtig und ermöglicht Ihnen die Deklaration beliebig tief verschachtelter Abhängigkeits-„Graphen“ (Bäume). Dennoch ist es sehr mächtig und ermöglicht Ihnen die Deklaration beliebig tief verschachtelter Abhängigkeits-„Graphen“ (Bäume).
/// tip | "Tipp" /// tip | Tipp
All dies scheint angesichts dieser einfachen Beispiele möglicherweise nicht so nützlich zu sein. All dies scheint angesichts dieser einfachen Beispiele möglicherweise nicht so nützlich zu sein.

2
docs/de/docs/tutorial/encoder.md

@ -42,7 +42,7 @@ Das Resultat dieses Aufrufs ist etwas, das mit Pythons Standard-<a href="https:/
Es wird also kein großer `str` zurückgegeben, der die Daten im JSON-Format (als String) enthält. Es wird eine Python-Standarddatenstruktur (z. B. ein `dict`) zurückgegeben, mit Werten und Unterwerten, die alle mit JSON kompatibel sind. Es wird also kein großer `str` zurückgegeben, der die Daten im JSON-Format (als String) enthält. Es wird eine Python-Standarddatenstruktur (z. B. ein `dict`) zurückgegeben, mit Werten und Unterwerten, die alle mit JSON kompatibel sind.
/// note | "Hinweis" /// note | Hinweis
`jsonable_encoder` wird tatsächlich von **FastAPI** intern verwendet, um Daten zu konvertieren. Aber es ist in vielen anderen Szenarien hilfreich. `jsonable_encoder` wird tatsächlich von **FastAPI** intern verwendet, um Daten zu konvertieren. Aber es ist in vielen anderen Szenarien hilfreich.

6
docs/de/docs/tutorial/extra-models.md

@ -8,7 +8,7 @@ Insbesondere Benutzermodelle, denn:
* Das **herausgehende Modell** sollte kein Passwort haben. * Das **herausgehende Modell** sollte kein Passwort haben.
* Das **Datenbankmodell** sollte wahrscheinlich ein <abbr title='Ein aus scheinbar zufälligen Zeichen bestehender „Fingerabdruck“ eines Textes. Der Inhalt des Textes kann nicht eingesehen werden.'>gehashtes</abbr> Passwort haben. * Das **Datenbankmodell** sollte wahrscheinlich ein <abbr title='Ein aus scheinbar zufälligen Zeichen bestehender „Fingerabdruck“ eines Textes. Der Inhalt des Textes kann nicht eingesehen werden.'>gehashtes</abbr> Passwort haben.
/// danger | "Gefahr" /// danger | Gefahr
Speichern Sie niemals das Klartext-Passwort eines Benutzers. Speichern Sie immer den „sicheren Hash“, den Sie verifizieren können. Speichern Sie niemals das Klartext-Passwort eines Benutzers. Speichern Sie immer den „sicheren Hash“, den Sie verifizieren können.
@ -154,7 +154,7 @@ UserInDB(
) )
``` ```
/// warning | "Achtung" /// warning | Achtung
Die Hilfsfunktionen `fake_password_hasher` und `fake_save_user` demonstrieren nur den möglichen Fluss der Daten und bieten natürlich keine echte Sicherheit. Die Hilfsfunktionen `fake_password_hasher` und `fake_save_user` demonstrieren nur den möglichen Fluss der Daten und bieten natürlich keine echte Sicherheit.
@ -200,7 +200,7 @@ Das wird in OpenAPI mit `anyOf` angezeigt.
Um das zu tun, verwenden Sie Pythons Standard-Typhinweis <a href="https://docs.python.org/3/library/typing.html#typing.Union" class="external-link" target="_blank">`typing.Union`</a>: Um das zu tun, verwenden Sie Pythons Standard-Typhinweis <a href="https://docs.python.org/3/library/typing.html#typing.Union" class="external-link" target="_blank">`typing.Union`</a>:
/// note | "Hinweis" /// note | Hinweis
Listen Sie, wenn Sie eine <a href="https://pydantic-docs.helpmanual.io/usage/types/#unions" class="external-link" target="_blank">`Union`</a> definieren, denjenigen Typ zuerst, der am spezifischsten ist, gefolgt von den weniger spezifischen Typen. Im Beispiel oben, in `Union[PlaneItem, CarItem]` also den spezifischeren `PlaneItem` vor dem weniger spezifischen `CarItem`. Listen Sie, wenn Sie eine <a href="https://pydantic-docs.helpmanual.io/usage/types/#unions" class="external-link" target="_blank">`Union`</a> definieren, denjenigen Typ zuerst, der am spezifischsten ist, gefolgt von den weniger spezifischen Typen. Im Beispiel oben, in `Union[PlaneItem, CarItem]` also den spezifischeren `PlaneItem` vor dem weniger spezifischen `CarItem`.

10
docs/de/docs/tutorial/first-steps.md

@ -24,7 +24,7 @@ $ uvicorn main:app --reload
</div> </div>
/// note | "Hinweis" /// note | Hinweis
Der Befehl `uvicorn main:app` bezieht sich auf: Der Befehl `uvicorn main:app` bezieht sich auf:
@ -139,7 +139,7 @@ Ebenfalls können Sie es verwenden, um automatisch Code für Clients zu generier
`FastAPI` ist eine Python-Klasse, die die gesamte Funktionalität für Ihre API bereitstellt. `FastAPI` ist eine Python-Klasse, die die gesamte Funktionalität für Ihre API bereitstellt.
/// note | "Technische Details" /// note | Technische Details
`FastAPI` ist eine Klasse, die direkt von `Starlette` erbt. `FastAPI` ist eine Klasse, die direkt von `Starlette` erbt.
@ -259,7 +259,7 @@ Das `@app.get("/")` sagt **FastAPI**, dass die Funktion direkt darunter für die
* den Pfad `/` * den Pfad `/`
* unter der Verwendung der <abbr title="eine HTTP GET Methode"><code>get</code>-Operation</abbr> gehen * unter der Verwendung der <abbr title="eine HTTP GET Methode"><code>get</code>-Operation</abbr> gehen
/// info | "`@decorator` Information" /// info | `@decorator` Information
Diese `@something`-Syntax wird in Python „Dekorator“ genannt. Diese `@something`-Syntax wird in Python „Dekorator“ genannt.
@ -286,7 +286,7 @@ Oder die exotischeren:
* `@app.patch()` * `@app.patch()`
* `@app.trace()` * `@app.trace()`
/// tip | "Tipp" /// tip | Tipp
Es steht Ihnen frei, jede Operation (HTTP-Methode) so zu verwenden, wie Sie es möchten. Es steht Ihnen frei, jede Operation (HTTP-Methode) so zu verwenden, wie Sie es möchten.
@ -324,7 +324,7 @@ Sie könnten sie auch als normale Funktion anstelle von `async def` definieren:
{!../../docs_src/first_steps/tutorial003.py!} {!../../docs_src/first_steps/tutorial003.py!}
``` ```
/// note | "Hinweis" /// note | Hinweis
Wenn Sie den Unterschied nicht kennen, lesen Sie [Async: *„In Eile?“*](../async.md#in-eile){.internal-link target=_blank}. Wenn Sie den Unterschied nicht kennen, lesen Sie [Async: *„In Eile?“*](../async.md#in-eile){.internal-link target=_blank}.

8
docs/de/docs/tutorial/handling-errors.md

@ -63,7 +63,7 @@ Aber wenn der Client `http://example.com/items/bar` anfragt (ein nicht-existiere
} }
``` ```
/// tip | "Tipp" /// tip | Tipp
Wenn Sie eine `HTTPException` auslösen, können Sie dem Parameter `detail` jeden Wert übergeben, der nach JSON konvertiert werden kann, nicht nur `str`. Wenn Sie eine `HTTPException` auslösen, können Sie dem Parameter `detail` jeden Wert übergeben, der nach JSON konvertiert werden kann, nicht nur `str`.
@ -109,7 +109,7 @@ Sie erhalten also einen sauberen Error mit einem Statuscode `418` und dem JSON-I
{"message": "Oops! yolo did something. There goes a rainbow..."} {"message": "Oops! yolo did something. There goes a rainbow..."}
``` ```
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.requests import Request` und `from starlette.responses import JSONResponse` verwenden. Sie können auch `from starlette.requests import Request` und `from starlette.responses import JSONResponse` verwenden.
@ -166,7 +166,7 @@ path -> item_id
#### `RequestValidationError` vs. `ValidationError` #### `RequestValidationError` vs. `ValidationError`
/// warning | "Achtung" /// warning | Achtung
Das folgende sind technische Details, die Sie überspringen können, wenn sie für Sie nicht wichtig sind. Das folgende sind technische Details, die Sie überspringen können, wenn sie für Sie nicht wichtig sind.
@ -192,7 +192,7 @@ Zum Beispiel könnten Sie eine Klartext-Response statt JSON für diese Fehler zu
{!../../docs_src/handling_errors/tutorial004.py!} {!../../docs_src/handling_errors/tutorial004.py!}
``` ```
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import PlainTextResponse` verwenden. Sie können auch `from starlette.responses import PlainTextResponse` verwenden.

22
docs/de/docs/tutorial/header-params.md

@ -32,7 +32,7 @@ Importieren Sie zuerst `Header`:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -46,7 +46,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -90,7 +90,7 @@ Der erste Wert ist der Typ. Sie können `Header` die gehabten Extra Validierungs
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -104,7 +104,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -116,7 +116,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// note | "Technische Details" /// note | Technische Details
`Header` ist eine Schwesterklasse von `Path`, `Query` und `Cookie`. Sie erbt von derselben gemeinsamen `Param`-Elternklasse. `Header` ist eine Schwesterklasse von `Path`, `Query` und `Cookie`. Sie erbt von derselben gemeinsamen `Param`-Elternklasse.
@ -172,7 +172,7 @@ Wenn Sie aus irgendeinem Grund das automatische Konvertieren von Unterstrichen z
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -186,7 +186,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -198,7 +198,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// warning | "Achtung" /// warning | Achtung
Bevor Sie `convert_underscores` auf `False` setzen, bedenken Sie, dass manche HTTP-Proxys und Server die Verwendung von Headern mit Unterstrichen nicht erlauben. Bevor Sie `convert_underscores` auf `False` setzen, bedenken Sie, dass manche HTTP-Proxys und Server die Verwendung von Headern mit Unterstrichen nicht erlauben.
@ -240,7 +240,7 @@ Um zum Beispiel einen Header `X-Token` zu deklarieren, der mehrmals vorkommen ka
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -254,7 +254,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -268,7 +268,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

2
docs/de/docs/tutorial/index.md

@ -52,7 +52,7 @@ $ pip install "fastapi[all]"
... das beinhaltet auch `uvicorn`, welchen Sie als Server verwenden können, der ihren Code ausführt. ... das beinhaltet auch `uvicorn`, welchen Sie als Server verwenden können, der ihren Code ausführt.
/// note | "Hinweis" /// note | Hinweis
Sie können die einzelnen Teile auch separat installieren. Sie können die einzelnen Teile auch separat installieren.

4
docs/de/docs/tutorial/metadata.md

@ -22,7 +22,7 @@ Sie können diese wie folgt setzen:
{!../../docs_src/metadata/tutorial001.py!} {!../../docs_src/metadata/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Sie können Markdown in das Feld `description` schreiben und es wird in der Ausgabe gerendert. Sie können Markdown in das Feld `description` schreiben und es wird in der Ausgabe gerendert.
@ -68,7 +68,7 @@ Erstellen Sie Metadaten für Ihre Tags und übergeben Sie sie an den Parameter `
Beachten Sie, dass Sie Markdown in den Beschreibungen verwenden können. Beispielsweise wird „login“ in Fettschrift (**login**) und „fancy“ in Kursivschrift (_fancy_) angezeigt. Beachten Sie, dass Sie Markdown in den Beschreibungen verwenden können. Beispielsweise wird „login“ in Fettschrift (**login**) und „fancy“ in Kursivschrift (_fancy_) angezeigt.
/// tip | "Tipp" /// tip | Tipp
Sie müssen nicht für alle von Ihnen verwendeten Tags Metadaten hinzufügen. Sie müssen nicht für alle von Ihnen verwendeten Tags Metadaten hinzufügen.

6
docs/de/docs/tutorial/middleware.md

@ -11,7 +11,7 @@ Eine „Middleware“ ist eine Funktion, die mit jedem **Request** arbeitet, bev
* Sie kann etwas mit dieser **Response** tun oder beliebigen Code ausführen. * Sie kann etwas mit dieser **Response** tun oder beliebigen Code ausführen.
* Dann gibt sie die **Response** zurück. * Dann gibt sie die **Response** zurück.
/// note | "Technische Details" /// note | Technische Details
Wenn Sie Abhängigkeiten mit `yield` haben, wird der Exit-Code *nach* der Middleware ausgeführt. Wenn Sie Abhängigkeiten mit `yield` haben, wird der Exit-Code *nach* der Middleware ausgeführt.
@ -33,7 +33,7 @@ Die Middleware-Funktion erhält:
{* ../../docs_src/middleware/tutorial001.py hl[8:9,11,14] *} {* ../../docs_src/middleware/tutorial001.py hl[8:9,11,14] *}
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass benutzerdefinierte proprietäre Header hinzugefügt werden können. <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers" class="external-link" target="_blank">Verwenden Sie dafür das Präfix 'X-'</a>. Beachten Sie, dass benutzerdefinierte proprietäre Header hinzugefügt werden können. <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers" class="external-link" target="_blank">Verwenden Sie dafür das Präfix 'X-'</a>.
@ -41,7 +41,7 @@ Wenn Sie jedoch benutzerdefinierte Header haben, die ein Client in einem Browser
/// ///
/// note | "Technische Details" /// note | Technische Details
Sie könnten auch `from starlette.requests import Request` verwenden. Sie könnten auch `from starlette.requests import Request` verwenden.

4
docs/de/docs/tutorial/path-operation-configuration.md

@ -2,7 +2,7 @@
Es gibt mehrere Konfigurations-Parameter, die Sie Ihrem *Pfadoperation-Dekorator* übergeben können. Es gibt mehrere Konfigurations-Parameter, die Sie Ihrem *Pfadoperation-Dekorator* übergeben können.
/// warning | "Achtung" /// warning | Achtung
Beachten Sie, dass diese Parameter direkt dem *Pfadoperation-Dekorator* übergeben werden, nicht der *Pfadoperation-Funktion*. Beachten Sie, dass diese Parameter direkt dem *Pfadoperation-Dekorator* übergeben werden, nicht der *Pfadoperation-Funktion*.
@ -42,7 +42,7 @@ Aber falls Sie sich nicht mehr erinnern, wofür jede Nummer steht, können Sie d
Dieser Statuscode wird in der Response verwendet und zum OpenAPI-Schema hinzugefügt. Dieser Statuscode wird in der Response verwendet und zum OpenAPI-Schema hinzugefügt.
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette import status` verwenden. Sie können auch `from starlette import status` verwenden.

24
docs/de/docs/tutorial/path-params-numeric-validations.md

@ -32,7 +32,7 @@ Importieren Sie zuerst `Path` von `fastapi`, und importieren Sie `Annotated`.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -46,7 +46,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -100,7 +100,7 @@ Um zum Beispiel einen `title`-Metadaten-Wert für den Pfad-Parameter `item_id` z
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -114,7 +114,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -126,7 +126,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// note | "Hinweis" /// note | Hinweis
Ein Pfad-Parameter ist immer erforderlich, weil er Teil des Pfads sein muss. Ein Pfad-Parameter ist immer erforderlich, weil er Teil des Pfads sein muss.
@ -138,7 +138,7 @@ Doch selbst wenn Sie ihn mit `None` deklarieren, oder einen Defaultwert setzen,
## Sortieren Sie die Parameter, wie Sie möchten ## Sortieren Sie die Parameter, wie Sie möchten
/// tip | "Tipp" /// tip | Tipp
Wenn Sie `Annotated` verwenden, ist das folgende nicht so wichtig / nicht notwendig. Wenn Sie `Annotated` verwenden, ist das folgende nicht so wichtig / nicht notwendig.
@ -160,7 +160,7 @@ Sie können Ihre Funktion also so deklarieren:
//// tab | Python 3.8 nicht annotiert //// tab | Python 3.8 nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -192,7 +192,7 @@ Aber bedenken Sie, dass Sie dieses Problem nicht haben, wenn Sie `Annotated` ver
## Sortieren Sie die Parameter wie Sie möchten: Tricks ## Sortieren Sie die Parameter wie Sie möchten: Tricks
/// tip | "Tipp" /// tip | Tipp
Wenn Sie `Annotated` verwenden, ist das folgende nicht so wichtig / nicht notwendig. Wenn Sie `Annotated` verwenden, ist das folgende nicht so wichtig / nicht notwendig.
@ -260,7 +260,7 @@ Hier, mit `ge=1`, wird festgelegt, dass `item_id` eine Ganzzahl benötigt, die g
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -297,7 +297,7 @@ Das Gleiche trifft zu auf:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -337,7 +337,7 @@ Das gleiche gilt für <abbr title="less than – kleiner als"><code>lt</code></a
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -368,7 +368,7 @@ Sie alle teilen die gleichen Parameter für zusätzliche Validierung und Metadat
/// ///
/// note | "Technische Details" /// note | Technische Details
`Query`, `Path` und andere, die Sie von `fastapi` importieren, sind tatsächlich Funktionen. `Query`, `Path` und andere, die Sie von `fastapi` importieren, sind tatsächlich Funktionen.

6
docs/de/docs/tutorial/path-params.md

@ -159,7 +159,7 @@ Erstellen Sie dann Klassen-Attribute mit festgelegten Werten, welches die erlaub
/// ///
/// tip | "Tipp" /// tip | Tipp
Falls Sie sich fragen, was „AlexNet“, „ResNet“ und „LeNet“ ist, das sind Namen von <abbr title="Genau genommen, Deep-Learning-Modellarchitekturen">Modellen</abbr> für maschinelles Lernen. Falls Sie sich fragen, was „AlexNet“, „ResNet“ und „LeNet“ ist, das sind Namen von <abbr title="Genau genommen, Deep-Learning-Modellarchitekturen">Modellen</abbr> für maschinelles Lernen.
@ -199,7 +199,7 @@ Den tatsächlichen Wert (in diesem Fall ein `str`) erhalten Sie via `model_name.
{!../../docs_src/path_params/tutorial005.py!} {!../../docs_src/path_params/tutorial005.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Sie können den Wert `"lenet"` außerdem mittels `ModelName.lenet.value` abrufen. Sie können den Wert `"lenet"` außerdem mittels `ModelName.lenet.value` abrufen.
@ -256,7 +256,7 @@ Sie verwenden das also wie folgt:
{!../../docs_src/path_params/tutorial004.py!} {!../../docs_src/path_params/tutorial004.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Der Parameter könnte einen führenden Schrägstrich (`/`) haben, wie etwa in `/home/johndoe/myfile.txt`. Der Parameter könnte einen führenden Schrägstrich (`/`) haben, wie etwa in `/home/johndoe/myfile.txt`.

68
docs/de/docs/tutorial/query-params-str-validations.md

@ -22,7 +22,7 @@ Nehmen wir als Beispiel die folgende Anwendung:
Der Query-Parameter `q` hat den Typ `Union[str, None]` (oder `str | None` in Python 3.10), was bedeutet, er ist entweder ein `str` oder `None`. Der Defaultwert ist `None`, also weiß FastAPI, der Parameter ist nicht erforderlich. Der Query-Parameter `q` hat den Typ `Union[str, None]` (oder `str | None` in Python 3.10), was bedeutet, er ist entweder ein `str` oder `None`. Der Defaultwert ist `None`, also weiß FastAPI, der Parameter ist nicht erforderlich.
/// note | "Hinweis" /// note | Hinweis
FastAPI weiß nur dank des definierten Defaultwertes `=None`, dass der Wert von `q` nicht erforderlich ist FastAPI weiß nur dank des definierten Defaultwertes `=None`, dass der Wert von `q` nicht erforderlich ist
@ -153,7 +153,7 @@ FastAPI wird nun:
Frühere Versionen von FastAPI (vor <abbr title="vor 2023-03">0.95.0</abbr>) benötigten `Query` als Defaultwert des Parameters, statt es innerhalb von `Annotated` unterzubringen. Die Chance ist groß, dass Sie Quellcode sehen, der das immer noch so macht, darum erkläre ich es Ihnen. Frühere Versionen von FastAPI (vor <abbr title="vor 2023-03">0.95.0</abbr>) benötigten `Query` als Defaultwert des Parameters, statt es innerhalb von `Annotated` unterzubringen. Die Chance ist groß, dass Sie Quellcode sehen, der das immer noch so macht, darum erkläre ich es Ihnen.
/// tip | "Tipp" /// tip | Tipp
Verwenden Sie für neuen Code, und wann immer möglich, `Annotated`, wie oben erklärt. Es gibt mehrere Vorteile (unten erläutert) und keine Nachteile. 🍰 Verwenden Sie für neuen Code, und wann immer möglich, `Annotated`, wie oben erklärt. Es gibt mehrere Vorteile (unten erläutert) und keine Nachteile. 🍰
@ -301,7 +301,7 @@ Sie können auch einen Parameter `min_length` hinzufügen:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -315,7 +315,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -357,7 +357,7 @@ Sie können einen <abbr title="Ein regulärer Ausdruck, auch regex oder regexp g
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -371,7 +371,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -433,7 +433,7 @@ Beispielsweise könnten Sie den `q` Query-Parameter so deklarieren, dass er eine
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -445,7 +445,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// note | "Hinweis" /// note | Hinweis
Ein Parameter ist optional (nicht erforderlich), wenn er irgendeinen Defaultwert, auch `None`, hat. Ein Parameter ist optional (nicht erforderlich), wenn er irgendeinen Defaultwert, auch `None`, hat.
@ -503,7 +503,7 @@ Wenn Sie einen Parameter erforderlich machen wollen, während Sie `Query` verwen
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -513,7 +513,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
{!> ../../docs_src/query_params_str_validations/tutorial006.py!} {!> ../../docs_src/query_params_str_validations/tutorial006.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass, obwohl in diesem Fall `Query()` der Funktionsparameter-Defaultwert ist, wir nicht `default=None` zu `Query()` hinzufügen. Beachten Sie, dass, obwohl in diesem Fall `Query()` der Funktionsparameter-Defaultwert ist, wir nicht `default=None` zu `Query()` hinzufügen.
@ -545,7 +545,7 @@ Es gibt eine Alternative, die explizit deklariert, dass ein Wert erforderlich is
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -599,7 +599,7 @@ Um das zu machen, deklarieren Sie, dass `None` ein gültiger Typ ist, aber verwe
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -613,7 +613,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -625,13 +625,13 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Pydantic, welches die gesamte Datenvalidierung und Serialisierung in FastAPI antreibt, hat ein spezielles Verhalten, wenn Sie `Optional` oder `Union[Something, None]` ohne Defaultwert verwenden, Sie können mehr darüber in der Pydantic-Dokumentation unter <a href="https://docs.pydantic.dev/2.3/usage/models/#required-fields" class="external-link" target="_blank">Required fields</a> erfahren. Pydantic, welches die gesamte Datenvalidierung und Serialisierung in FastAPI antreibt, hat ein spezielles Verhalten, wenn Sie `Optional` oder `Union[Something, None]` ohne Defaultwert verwenden, Sie können mehr darüber in der Pydantic-Dokumentation unter <a href="https://docs.pydantic.dev/2.3/usage/models/#required-fields" class="external-link" target="_blank">Required fields</a> erfahren.
/// ///
/// tip | "Tipp" /// tip | Tipp
Denken Sie daran, dass Sie in den meisten Fällen, wenn etwas erforderlich ist, einfach den Defaultwert weglassen können. Sie müssen also normalerweise `...` nicht verwenden. Denken Sie daran, dass Sie in den meisten Fällen, wenn etwas erforderlich ist, einfach den Defaultwert weglassen können. Sie müssen also normalerweise `...` nicht verwenden.
@ -669,7 +669,7 @@ Um zum Beispiel einen Query-Parameter `q` zu deklarieren, der mehrere Male in de
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -683,7 +683,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -697,7 +697,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -728,7 +728,7 @@ Die Response für diese URL wäre also:
} }
``` ```
/// tip | "Tipp" /// tip | Tipp
Um einen Query-Parameter vom Typ `list` zu deklarieren, wie im Beispiel oben, müssen Sie explizit `Query` verwenden, sonst würde der Parameter als Requestbody interpretiert werden. Um einen Query-Parameter vom Typ `list` zu deklarieren, wie im Beispiel oben, müssen Sie explizit `Query` verwenden, sonst würde der Parameter als Requestbody interpretiert werden.
@ -760,7 +760,7 @@ Und Sie können auch eine Default-`list`e von Werten definieren, wenn keine übe
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -774,7 +774,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -825,7 +825,7 @@ Sie können auch `list` direkt verwenden, anstelle von `List[str]` (oder `list[s
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -837,7 +837,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass FastAPI in diesem Fall den Inhalt der Liste nicht überprüft. Beachten Sie, dass FastAPI in diesem Fall den Inhalt der Liste nicht überprüft.
@ -851,7 +851,7 @@ Sie können mehr Informationen zum Parameter hinzufügen.
Diese Informationen werden zur generierten OpenAPI hinzugefügt, und von den Dokumentations-Oberflächen und von externen Tools verwendet. Diese Informationen werden zur generierten OpenAPI hinzugefügt, und von den Dokumentations-Oberflächen und von externen Tools verwendet.
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass verschiedene Tools OpenAPI möglicherweise unterschiedlich gut unterstützen. Beachten Sie, dass verschiedene Tools OpenAPI möglicherweise unterschiedlich gut unterstützen.
@ -887,7 +887,7 @@ Sie können einen Titel hinzufügen – `title`:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -901,7 +901,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -941,7 +941,7 @@ Und eine Beschreibung – `description`:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -955,7 +955,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -1011,7 +1011,7 @@ Dann können Sie einen `alias` deklarieren, und dieser Alias wird verwendet, um
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -1025,7 +1025,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -1071,7 +1071,7 @@ In diesem Fall fügen Sie den Parameter `deprecated=True` zu `Query` hinzu.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -1085,7 +1085,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -1131,7 +1131,7 @@ Um einen Query-Parameter vom generierten OpenAPI-Schema auszuschließen (und dah
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -1145,7 +1145,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

2
docs/de/docs/tutorial/query-params.md

@ -241,7 +241,7 @@ In diesem Fall gibt es drei Query-Parameter:
* `skip`, ein `int` mit einem Defaultwert `0`. * `skip`, ein `int` mit einem Defaultwert `0`.
* `limit`, ein optionales `int`. * `limit`, ein optionales `int`.
/// tip | "Tipp" /// tip | Tipp
Sie können auch `Enum`s verwenden, auf die gleiche Weise wie mit [Pfad-Parametern](path-params.md#vordefinierte-parameterwerte){.internal-link target=_blank}. Sie können auch `Enum`s verwenden, auf die gleiche Weise wie mit [Pfad-Parametern](path-params.md#vordefinierte-parameterwerte){.internal-link target=_blank}.

32
docs/de/docs/tutorial/request-files.md

@ -34,7 +34,7 @@ Importieren Sie `File` und `UploadFile` von `fastapi`:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -68,7 +68,7 @@ Erstellen Sie Datei-Parameter, so wie Sie es auch mit `Body` und `Form` machen w
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -88,7 +88,7 @@ Aber erinnern Sie sich, dass, wenn Sie `Query`, `Path`, `File` und andere von `
/// ///
/// tip | "Tipp" /// tip | Tipp
Um Dateibodys zu deklarieren, müssen Sie `File` verwenden, da diese Parameter sonst als Query-Parameter oder Body(-JSON)-Parameter interpretiert werden würden. Um Dateibodys zu deklarieren, müssen Sie `File` verwenden, da diese Parameter sonst als Query-Parameter oder Body(-JSON)-Parameter interpretiert werden würden.
@ -124,7 +124,7 @@ Definieren Sie einen Datei-Parameter mit dem Typ `UploadFile`:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -177,13 +177,13 @@ Wenn Sie sich innerhalb einer normalen `def`-*Pfadoperation-Funktion* befinden,
contents = myfile.file.read() contents = myfile.file.read()
``` ```
/// note | "Technische Details zu `async`" /// note | Technische Details zu `async`
Wenn Sie die `async`-Methoden verwenden, führt **FastAPI** die Datei-Methoden in einem <abbr title="Mehrere unabhängige Kindprozesse">Threadpool</abbr> aus und erwartet sie. Wenn Sie die `async`-Methoden verwenden, führt **FastAPI** die Datei-Methoden in einem <abbr title="Mehrere unabhängige Kindprozesse">Threadpool</abbr> aus und erwartet sie.
/// ///
/// note | "Technische Details zu Starlette" /// note | Technische Details zu Starlette
**FastAPI**s `UploadFile` erbt direkt von **Starlette**s `UploadFile`, fügt aber ein paar notwendige Teile hinzu, um es kompatibel mit **Pydantic** und anderen Teilen von FastAPI zu machen. **FastAPI**s `UploadFile` erbt direkt von **Starlette**s `UploadFile`, fügt aber ein paar notwendige Teile hinzu, um es kompatibel mit **Pydantic** und anderen Teilen von FastAPI zu machen.
@ -195,7 +195,7 @@ HTML-Formulare (`<form></form>`) senden die Daten in einer „speziellen“ Kodi
**FastAPI** stellt sicher, dass diese Daten korrekt ausgelesen werden, statt JSON zu erwarten. **FastAPI** stellt sicher, dass diese Daten korrekt ausgelesen werden, statt JSON zu erwarten.
/// note | "Technische Details" /// note | Technische Details
Daten aus Formularen werden, wenn es keine Dateien sind, normalerweise mit dem <abbr title='Media type – Medientyp, Typ des Mediums'>„media type“</abbr> `application/x-www-form-urlencoded` kodiert. Daten aus Formularen werden, wenn es keine Dateien sind, normalerweise mit dem <abbr title='Media type – Medientyp, Typ des Mediums'>„media type“</abbr> `application/x-www-form-urlencoded` kodiert.
@ -205,7 +205,7 @@ Wenn Sie mehr über Formularfelder und ihre Kodierungen lesen möchten, besuchen
/// ///
/// warning | "Achtung" /// warning | Achtung
Sie können mehrere `File`- und `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `multipart/form-data` statt `application/json` kodiert. Sie können mehrere `File`- und `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `multipart/form-data` statt `application/json` kodiert.
@ -243,7 +243,7 @@ Sie können eine Datei optional machen, indem Sie Standard-Typannotationen verwe
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -257,7 +257,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -291,7 +291,7 @@ Sie können auch `File()` zusammen mit `UploadFile` verwenden, um zum Beispiel z
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -329,7 +329,7 @@ Um das zu machen, deklarieren Sie eine Liste von `bytes` oder `UploadFile`s:
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -343,7 +343,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -357,7 +357,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
Sie erhalten, wie deklariert, eine `list`e von `bytes` oder `UploadFile`s. Sie erhalten, wie deklariert, eine `list`e von `bytes` oder `UploadFile`s.
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette.responses import HTMLResponse` verwenden. Sie können auch `from starlette.responses import HTMLResponse` verwenden.
@ -387,7 +387,7 @@ Und so wie zuvor können Sie `File()` verwenden, um zusätzliche Parameter zu se
//// tab | Python 3.9+ nicht annotiert //// tab | Python 3.9+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -401,7 +401,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

6
docs/de/docs/tutorial/request-forms-and-files.md

@ -30,7 +30,7 @@ Z. B. `pip install python-multipart`.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -64,7 +64,7 @@ Erstellen Sie Datei- und Formularparameter, so wie Sie es auch mit `Body` und `Q
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -80,7 +80,7 @@ Die Datei- und Formularfelder werden als Formulardaten hochgeladen, und Sie erha
Und Sie können einige der Dateien als `bytes` und einige als `UploadFile` deklarieren. Und Sie können einige der Dateien als `bytes` und einige als `UploadFile` deklarieren.
/// warning | "Achtung" /// warning | Achtung
Sie können mehrere `File`- und `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `multipart/form-data` statt `application/json` kodiert. Sie können mehrere `File`- und `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `multipart/form-data` statt `application/json` kodiert.

10
docs/de/docs/tutorial/request-forms.md

@ -32,7 +32,7 @@ Importieren Sie `Form` von `fastapi`:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -66,7 +66,7 @@ Erstellen Sie Formular-Parameter, so wie Sie es auch mit `Body` und `Query` mach
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -90,7 +90,7 @@ Mit `Form` haben Sie die gleichen Konfigurationsmöglichkeiten wie mit `Body` (u
/// ///
/// tip | "Tipp" /// tip | Tipp
Um Formularbodys zu deklarieren, verwenden Sie explizit `Form`, da diese Parameter sonst als Query-Parameter oder Body(-JSON)-Parameter interpretiert werden würden. Um Formularbodys zu deklarieren, verwenden Sie explizit `Form`, da diese Parameter sonst als Query-Parameter oder Body(-JSON)-Parameter interpretiert werden würden.
@ -102,7 +102,7 @@ HTML-Formulare (`<form></form>`) senden die Daten in einer „speziellen“ Kodi
**FastAPI** stellt sicher, dass diese Daten korrekt ausgelesen werden, statt JSON zu erwarten. **FastAPI** stellt sicher, dass diese Daten korrekt ausgelesen werden, statt JSON zu erwarten.
/// note | "Technische Details" /// note | Technische Details
Daten aus Formularen werden normalerweise mit dem <abbr title='Media type – Medientyp, Typ des Mediums'>„media type“</abbr> `application/x-www-form-urlencoded` kodiert. Daten aus Formularen werden normalerweise mit dem <abbr title='Media type – Medientyp, Typ des Mediums'>„media type“</abbr> `application/x-www-form-urlencoded` kodiert.
@ -112,7 +112,7 @@ Wenn Sie mehr über Formularfelder und ihre Kodierungen lesen möchten, besuchen
/// ///
/// warning | "Achtung" /// warning | Achtung
Sie können mehrere `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `application/x-www-form-urlencoded` statt `application/json` kodiert. Sie können mehrere `Form`-Parameter in einer *Pfadoperation* deklarieren, aber Sie können nicht gleichzeitig auch `Body`-Felder deklarieren, welche Sie als JSON erwarten, da der Request den Body mittels `application/x-www-form-urlencoded` statt `application/json` kodiert.

12
docs/de/docs/tutorial/response-model.md

@ -83,7 +83,7 @@ Sie können `response_model` in jeder möglichen *Pfadoperation* verwenden:
//// ////
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass `response_model` ein Parameter der „Dekorator“-Methode ist (`get`, `post`, usw.). Nicht der *Pfadoperation-Funktion*, so wie die anderen Parameter. Beachten Sie, dass `response_model` ein Parameter der „Dekorator“-Methode ist (`get`, `post`, usw.). Nicht der *Pfadoperation-Funktion*, so wie die anderen Parameter.
@ -93,7 +93,7 @@ Beachten Sie, dass `response_model` ein Parameter der „Dekorator“-Methode is
FastAPI wird dieses `response_model` nehmen, um die Daten zu dokumentieren, validieren, usw. und auch, um **die Ausgabedaten** entsprechend der Typdeklaration **zu konvertieren und filtern**. FastAPI wird dieses `response_model` nehmen, um die Daten zu dokumentieren, validieren, usw. und auch, um **die Ausgabedaten** entsprechend der Typdeklaration **zu konvertieren und filtern**.
/// tip | "Tipp" /// tip | Tipp
Wenn Sie in Ihrem Editor strikte Typchecks haben, mypy, usw., können Sie den Funktions-Rückgabetyp als <abbr title='„Irgend etwas“'>`Any`</abbr> deklarieren. Wenn Sie in Ihrem Editor strikte Typchecks haben, mypy, usw., können Sie den Funktions-Rückgabetyp als <abbr title='„Irgend etwas“'>`Any`</abbr> deklarieren.
@ -162,7 +162,7 @@ Hier ist das möglicherweise kein Problem, da es derselbe Benutzer ist, der das
Aber wenn wir dasselbe Modell für eine andere *Pfadoperation* verwenden, könnten wir das Passwort dieses Benutzers zu jedem Client schicken. Aber wenn wir dasselbe Modell für eine andere *Pfadoperation* verwenden, könnten wir das Passwort dieses Benutzers zu jedem Client schicken.
/// danger | "Gefahr" /// danger | Gefahr
Speichern Sie niemals das Klartext-Passwort eines Benutzers, oder versenden Sie es in einer Response wie dieser, wenn Sie sich nicht der resultierenden Gefahren bewusst sind und nicht wissen, was Sie tun. Speichern Sie niemals das Klartext-Passwort eines Benutzers, oder versenden Sie es in einer Response wie dieser, wenn Sie sich nicht der resultierenden Gefahren bewusst sind und nicht wissen, was Sie tun.
@ -503,7 +503,7 @@ dann ist FastAPI klug genug (tatsächlich ist Pydantic klug genug) zu erkennen,
Diese Felder werden also in der JSON-Response enthalten sein. Diese Felder werden also in der JSON-Response enthalten sein.
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass Defaultwerte alles Mögliche sein können, nicht nur `None`. Beachten Sie, dass Defaultwerte alles Mögliche sein können, nicht nur `None`.
@ -519,7 +519,7 @@ Diese nehmen ein `set` von `str`s entgegen, welches Namen von Attributen sind, d
Das kann als schnelle Abkürzung verwendet werden, wenn Sie nur ein Pydantic-Modell haben und ein paar Daten von der Ausgabe ausschließen wollen. Das kann als schnelle Abkürzung verwendet werden, wenn Sie nur ein Pydantic-Modell haben und ein paar Daten von der Ausgabe ausschließen wollen.
/// tip | "Tipp" /// tip | Tipp
Es wird dennoch empfohlen, dass Sie die Ideen von oben verwenden, also mehrere Klassen statt dieser Parameter. Es wird dennoch empfohlen, dass Sie die Ideen von oben verwenden, also mehrere Klassen statt dieser Parameter.
@ -545,7 +545,7 @@ Das trifft auch auf `response_model_by_alias` zu, welches ähnlich funktioniert.
//// ////
/// tip | "Tipp" /// tip | Tipp
Die Syntax `{"name", "description"}` erzeugt ein `set` mit diesen zwei Werten. Die Syntax `{"name", "description"}` erzeugt ein `set` mit diesen zwei Werten.

10
docs/de/docs/tutorial/response-status-code.md

@ -10,7 +10,7 @@ So wie ein Responsemodell, können Sie auch einen HTTP-Statuscode für die Respo
{* ../../docs_src/response_status_code/tutorial001.py hl[6] *} {* ../../docs_src/response_status_code/tutorial001.py hl[6] *}
/// note | "Hinweis" /// note | Hinweis
Beachten Sie, dass `status_code` ein Parameter der „Dekorator“-Methode ist (`get`, `post`, usw.). Nicht der *Pfadoperation-Funktion*, so wie die anderen Parameter und der Body. Beachten Sie, dass `status_code` ein Parameter der „Dekorator“-Methode ist (`get`, `post`, usw.). Nicht der *Pfadoperation-Funktion*, so wie die anderen Parameter und der Body.
@ -31,7 +31,7 @@ Das wird:
<img src="/img/tutorial/response-status-code/image01.png"> <img src="/img/tutorial/response-status-code/image01.png">
/// note | "Hinweis" /// note | Hinweis
Einige Responsecodes (siehe nächster Abschnitt) kennzeichnen, dass die Response keinen Body hat. Einige Responsecodes (siehe nächster Abschnitt) kennzeichnen, dass die Response keinen Body hat.
@ -41,7 +41,7 @@ FastAPI versteht das und wird in der OpenAPI-Dokumentation anzeigen, dass es kei
## Über HTTP-Statuscodes ## Über HTTP-Statuscodes
/// note | "Hinweis" /// note | Hinweis
Wenn Sie bereits wissen, was HTTP-Statuscodes sind, überspringen Sie dieses Kapitel und fahren Sie mit dem nächsten fort. Wenn Sie bereits wissen, was HTTP-Statuscodes sind, überspringen Sie dieses Kapitel und fahren Sie mit dem nächsten fort.
@ -64,7 +64,7 @@ Kurz:
* Für allgemeine Fehler beim Client können Sie einfach `400` verwenden. * Für allgemeine Fehler beim Client können Sie einfach `400` verwenden.
* `500` und darüber stehen für Server-Fehler. Diese verwenden Sie fast nie direkt. Wenn etwas an irgendeiner Stelle in Ihrem Anwendungscode oder im Server schiefläuft, wird automatisch einer dieser Fehler-Statuscodes zurückgegeben. * `500` und darüber stehen für Server-Fehler. Diese verwenden Sie fast nie direkt. Wenn etwas an irgendeiner Stelle in Ihrem Anwendungscode oder im Server schiefläuft, wird automatisch einer dieser Fehler-Statuscodes zurückgegeben.
/// tip | "Tipp" /// tip | Tipp
Um mehr über Statuscodes zu lernen, und welcher wofür verwendet wird, lesen Sie die <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status" class="external-link" target="_blank"><abbr title="Mozilla Developer Network – Mozilla-Entwickler-Netzwerk">MDN</abbr> Dokumentation über HTTP-Statuscodes</a>. Um mehr über Statuscodes zu lernen, und welcher wofür verwendet wird, lesen Sie die <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status" class="external-link" target="_blank"><abbr title="Mozilla Developer Network – Mozilla-Entwickler-Netzwerk">MDN</abbr> Dokumentation über HTTP-Statuscodes</a>.
@ -88,7 +88,7 @@ Diese sind nur eine Annehmlichkeit und enthalten dieselbe Nummer, aber auf diese
<img src="/img/tutorial/response-status-code/image02.png"> <img src="/img/tutorial/response-status-code/image02.png">
/// note | "Technische Details" /// note | Technische Details
Sie können auch `from starlette import status` verwenden. Sie können auch `from starlette import status` verwenden.

6
docs/de/docs/tutorial/schema-extra-example.md

@ -38,7 +38,7 @@ Sie können `schema_extra` setzen, mit einem `dict`, das alle zusätzlichen Date
//// ////
/// tip | "Tipp" /// tip | Tipp
Mit derselben Technik können Sie das JSON-Schema erweitern und Ihre eigenen benutzerdefinierten Zusatzinformationen hinzufügen. Mit derselben Technik können Sie das JSON-Schema erweitern und Ihre eigenen benutzerdefinierten Zusatzinformationen hinzufügen.
@ -143,7 +143,7 @@ Wenn `openapi_examples` zu `Body()` hinzugefügt wird, würde `/docs` so aussehe
## Technische Details ## Technische Details
/// tip | "Tipp" /// tip | Tipp
Wenn Sie bereits **FastAPI** Version **0.99.0 oder höher** verwenden, können Sie diese Details wahrscheinlich **überspringen**. Wenn Sie bereits **FastAPI** Version **0.99.0 oder höher** verwenden, können Sie diese Details wahrscheinlich **überspringen**.
@ -153,7 +153,7 @@ Sie können dies als eine kurze **Geschichtsstunde** zu OpenAPI und JSON Schema
/// ///
/// warning | "Achtung" /// warning | Achtung
Dies sind sehr technische Details zu den Standards **JSON Schema** und **OpenAPI**. Dies sind sehr technische Details zu den Standards **JSON Schema** und **OpenAPI**.

14
docs/de/docs/tutorial/security/first-steps.md

@ -38,7 +38,7 @@ Kopieren Sie das Beispiel in eine Datei `main.py`:
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -82,7 +82,7 @@ Sie werden etwa Folgendes sehen:
<img src="/img/tutorial/security/image01.png"> <img src="/img/tutorial/security/image01.png">
/// check | "Authorize-Button!" /// check | Authorize-Button!
Sie haben bereits einen glänzenden, neuen „Authorize“-Button. Sie haben bereits einen glänzenden, neuen „Authorize“-Button.
@ -94,7 +94,7 @@ Und wenn Sie darauf klicken, erhalten Sie ein kleines Anmeldeformular zur Eingab
<img src="/img/tutorial/security/image02.png"> <img src="/img/tutorial/security/image02.png">
/// note | "Hinweis" /// note | Hinweis
Es spielt keine Rolle, was Sie in das Formular eingeben, es wird noch nicht funktionieren. Wir kommen dahin. Es spielt keine Rolle, was Sie in das Formular eingeben, es wird noch nicht funktionieren. Wir kommen dahin.
@ -172,7 +172,7 @@ Wenn wir eine Instanz der Klasse `OAuth2PasswordBearer` erstellen, übergeben wi
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -184,7 +184,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Hier bezieht sich `tokenUrl="token"` auf eine relative URL `token`, die wir noch nicht erstellt haben. Da es sich um eine relative URL handelt, entspricht sie `./token`. Hier bezieht sich `tokenUrl="token"` auf eine relative URL `token`, die wir noch nicht erstellt haben. Da es sich um eine relative URL handelt, entspricht sie `./token`.
@ -238,7 +238,7 @@ Jetzt können Sie dieses `oauth2_scheme` als Abhängigkeit `Depends` übergeben.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -254,7 +254,7 @@ Diese Abhängigkeit stellt einen `str` bereit, der dem Parameter `token` der *Pf
**FastAPI** weiß, dass es diese Abhängigkeit verwenden kann, um ein „Sicherheitsschema“ im OpenAPI-Schema (und der automatischen API-Dokumentation) zu definieren. **FastAPI** weiß, dass es diese Abhängigkeit verwenden kann, um ein „Sicherheitsschema“ im OpenAPI-Schema (und der automatischen API-Dokumentation) zu definieren.
/// info | "Technische Details" /// info | Technische Details
**FastAPI** weiß, dass es die Klasse `OAuth2PasswordBearer` (deklariert in einer Abhängigkeit) verwenden kann, um das Sicherheitsschema in OpenAPI zu definieren, da es von `fastapi.security.oauth2.OAuth2` erbt, das wiederum von `fastapi.security.base.SecurityBase` erbt. **FastAPI** weiß, dass es die Klasse `OAuth2PasswordBearer` (deklariert in einer Abhängigkeit) verwenden kann, um das Sicherheitsschema in OpenAPI zu definieren, da es von `fastapi.security.oauth2.OAuth2` erbt, das wiederum von `fastapi.security.base.SecurityBase` erbt.

24
docs/de/docs/tutorial/security/get-current-user.md

@ -20,7 +20,7 @@ Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injectio
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -68,7 +68,7 @@ So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch üb
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -82,7 +82,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -130,7 +130,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -144,7 +144,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -186,7 +186,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -200,7 +200,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -242,7 +242,7 @@ Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der *
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -256,7 +256,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -272,7 +272,7 @@ Beachten Sie, dass wir als Typ von `current_user` das Pydantic-Modell `User` dek
Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen helfen. Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen helfen.
/// tip | "Tipp" /// tip | Tipp
Sie erinnern sich vielleicht, dass Requestbodys ebenfalls mit Pydantic-Modellen deklariert werden. Sie erinnern sich vielleicht, dass Requestbodys ebenfalls mit Pydantic-Modellen deklariert werden.
@ -346,7 +346,7 @@ Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -360,7 +360,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

4
docs/de/docs/tutorial/security/index.md

@ -32,7 +32,7 @@ Heutzutage ist es nicht sehr populär und wird kaum verwendet.
OAuth2 spezifiziert nicht, wie die Kommunikation verschlüsselt werden soll, sondern erwartet, dass Ihre Anwendung mit HTTPS bereitgestellt wird. OAuth2 spezifiziert nicht, wie die Kommunikation verschlüsselt werden soll, sondern erwartet, dass Ihre Anwendung mit HTTPS bereitgestellt wird.
/// tip | "Tipp" /// tip | Tipp
Im Abschnitt über **Deployment** erfahren Sie, wie Sie HTTPS mithilfe von Traefik und Let's Encrypt kostenlos einrichten. Im Abschnitt über **Deployment** erfahren Sie, wie Sie HTTPS mithilfe von Traefik und Let's Encrypt kostenlos einrichten.
@ -89,7 +89,7 @@ OpenAPI definiert die folgenden Sicherheitsschemas:
* Diese automatische Erkennung ist es, die in der OpenID Connect Spezifikation definiert ist. * Diese automatische Erkennung ist es, die in der OpenID Connect Spezifikation definiert ist.
/// tip | "Tipp" /// tip | Tipp
Auch die Integration anderer Authentifizierungs-/Autorisierungsanbieter wie Google, Facebook, Twitter, GitHub, usw. ist möglich und relativ einfach. Auch die Integration anderer Authentifizierungs-/Autorisierungsanbieter wie Google, Facebook, Twitter, GitHub, usw. ist möglich und relativ einfach.

26
docs/de/docs/tutorial/security/oauth2-jwt.md

@ -44,7 +44,7 @@ $ pip install "python-jose[cryptography]"
Hier verwenden wir das empfohlene: <a href="https://cryptography.io/" class="external-link" target="_blank">pyca/cryptography</a>. Hier verwenden wir das empfohlene: <a href="https://cryptography.io/" class="external-link" target="_blank">pyca/cryptography</a>.
/// tip | "Tipp" /// tip | Tipp
Dieses Tutorial verwendete zuvor <a href="https://pyjwt.readthedocs.io/" class="external-link" target="_blank">PyJWT</a>. Dieses Tutorial verwendete zuvor <a href="https://pyjwt.readthedocs.io/" class="external-link" target="_blank">PyJWT</a>.
@ -86,7 +86,7 @@ $ pip install "passlib[bcrypt]"
</div> </div>
/// tip | "Tipp" /// tip | Tipp
Mit `passlib` können Sie sogar konfigurieren, Passwörter zu lesen, die von **Django**, einem **Flask**-Sicherheit-Plugin, oder vielen anderen erstellt wurden. Mit `passlib` können Sie sogar konfigurieren, Passwörter zu lesen, die von **Django**, einem **Flask**-Sicherheit-Plugin, oder vielen anderen erstellt wurden.
@ -102,7 +102,7 @@ Importieren Sie die benötigten Tools aus `passlib`.
Erstellen Sie einen PassLib-„Kontext“. Der wird für das Hashen und Verifizieren von Passwörtern verwendet. Erstellen Sie einen PassLib-„Kontext“. Der wird für das Hashen und Verifizieren von Passwörtern verwendet.
/// tip | "Tipp" /// tip | Tipp
Der PassLib-Kontext kann auch andere Hashing-Algorithmen verwenden, einschließlich deprecateter Alter, um etwa nur eine Verifizierung usw. zu ermöglichen. Der PassLib-Kontext kann auch andere Hashing-Algorithmen verwenden, einschließlich deprecateter Alter, um etwa nur eine Verifizierung usw. zu ermöglichen.
@ -144,7 +144,7 @@ Und noch eine, um einen Benutzer zu authentifizieren und zurückzugeben.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -158,7 +158,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -170,7 +170,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// note | "Hinweis" /// note | Hinweis
Wenn Sie sich die neue (gefakte) Datenbank `fake_users_db` anschauen, sehen Sie, wie das gehashte Passwort jetzt aussieht: `"$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW"`. Wenn Sie sich die neue (gefakte) Datenbank `fake_users_db` anschauen, sehen Sie, wie das gehashte Passwort jetzt aussieht: `"$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW"`.
@ -230,7 +230,7 @@ Erstellen Sie eine Hilfsfunktion, um einen neuen Zugriffstoken zu generieren.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -244,7 +244,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -290,7 +290,7 @@ Wenn der Token ungültig ist, geben Sie sofort einen HTTP-Fehler zurück.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -304,7 +304,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -348,7 +348,7 @@ Erstellen Sie einen echten JWT-Zugriffstoken und geben Sie ihn zurück.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -362,7 +362,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -436,7 +436,7 @@ Wenn Sie die Developer Tools öffnen, können Sie sehen, dass die gesendeten Dat
<img src="/img/tutorial/security/image10.png"> <img src="/img/tutorial/security/image10.png">
/// note | "Hinweis" /// note | Hinweis
Beachten Sie den Header `Authorization` mit einem Wert, der mit `Bearer` beginnt. Beachten Sie den Header `Authorization` mit einem Wert, der mit `Bearer` beginnt.

28
docs/de/docs/tutorial/security/simple-oauth2.md

@ -78,7 +78,7 @@ Importieren Sie zunächst `OAuth2PasswordRequestForm` und verwenden Sie es als A
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -92,7 +92,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -111,7 +111,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
* Einem optionalen `scope`-Feld als langem String, bestehend aus durch Leerzeichen getrennten Strings. * Einem optionalen `scope`-Feld als langem String, bestehend aus durch Leerzeichen getrennten Strings.
* Einem optionalen `grant_type` („Art der Anmeldung“). * Einem optionalen `grant_type` („Art der Anmeldung“).
/// tip | "Tipp" /// tip | Tipp
Die OAuth2-Spezifikation *erfordert* tatsächlich ein Feld `grant_type` mit dem festen Wert `password`, aber `OAuth2PasswordRequestForm` erzwingt dies nicht. Die OAuth2-Spezifikation *erfordert* tatsächlich ein Feld `grant_type` mit dem festen Wert `password`, aber `OAuth2PasswordRequestForm` erzwingt dies nicht.
@ -136,7 +136,7 @@ Da es sich jedoch um einen häufigen Anwendungsfall handelt, wird er zur Vereinf
### Die Formulardaten verwenden ### Die Formulardaten verwenden
/// tip | "Tipp" /// tip | Tipp
Die Instanz der Klassenabhängigkeit `OAuth2PasswordRequestForm` verfügt, statt eines Attributs `scope` mit dem durch Leerzeichen getrennten langen String, über das Attribut `scopes` mit einer tatsächlichen Liste von Strings, einem für jeden gesendeten Scope. Die Instanz der Klassenabhängigkeit `OAuth2PasswordRequestForm` verfügt, statt eines Attributs `scope` mit dem durch Leerzeichen getrennten langen String, über das Attribut `scopes` mit einer tatsächlichen Liste von Strings, einem für jeden gesendeten Scope.
@ -176,7 +176,7 @@ Für den Fehler verwenden wir die Exception `HTTPException`:
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -190,7 +190,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -252,7 +252,7 @@ Der Dieb kann also nicht versuchen, die gleichen Passwörter in einem anderen Sy
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -266,7 +266,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -310,7 +310,7 @@ Und es sollte einen `access_token` haben, mit einem String, der unseren Zugriffs
In diesem einfachen Beispiel gehen wir einfach völlig unsicher vor und geben denselben `username` wie der Token zurück. In diesem einfachen Beispiel gehen wir einfach völlig unsicher vor und geben denselben `username` wie der Token zurück.
/// tip | "Tipp" /// tip | Tipp
Im nächsten Kapitel sehen Sie eine wirklich sichere Implementierung mit Passwort-Hashing und <abbr title="JSON Web Tokens">JWT</abbr>-Tokens. Im nächsten Kapitel sehen Sie eine wirklich sichere Implementierung mit Passwort-Hashing und <abbr title="JSON Web Tokens">JWT</abbr>-Tokens.
@ -344,7 +344,7 @@ Aber konzentrieren wir uns zunächst auf die spezifischen Details, die wir benö
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -358,7 +358,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -370,7 +370,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// ////
/// tip | "Tipp" /// tip | Tipp
Gemäß der Spezifikation sollten Sie ein JSON mit einem `access_token` und einem `token_type` zurückgeben, genau wie in diesem Beispiel. Gemäß der Spezifikation sollten Sie ein JSON mit einem `access_token` und einem `token_type` zurückgeben, genau wie in diesem Beispiel.
@ -420,7 +420,7 @@ In unserem Endpunkt erhalten wir also nur dann einen Benutzer, wenn der Benutzer
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -434,7 +434,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

2
docs/de/docs/tutorial/static-files.md

@ -11,7 +11,7 @@ Mit `StaticFiles` können Sie statische Dateien aus einem Verzeichnis automatisc
{!../../docs_src/static_files/tutorial001.py!} {!../../docs_src/static_files/tutorial001.py!}
``` ```
/// note | "Technische Details" /// note | Technische Details
Sie könnten auch `from starlette.staticfiles import StaticFiles` verwenden. Sie könnten auch `from starlette.staticfiles import StaticFiles` verwenden.

10
docs/de/docs/tutorial/testing.md

@ -30,7 +30,7 @@ Schreiben Sie einfache `assert`-Anweisungen mit den Standard-Python-Ausdrücken,
{!../../docs_src/app_testing/tutorial001.py!} {!../../docs_src/app_testing/tutorial001.py!}
``` ```
/// tip | "Tipp" /// tip | Tipp
Beachten Sie, dass die Testfunktionen normal `def` und nicht `async def` sind. Beachten Sie, dass die Testfunktionen normal `def` und nicht `async def` sind.
@ -40,7 +40,7 @@ Dadurch können Sie `pytest` ohne Komplikationen direkt nutzen.
/// ///
/// note | "Technische Details" /// note | Technische Details
Sie könnten auch `from starlette.testclient import TestClient` verwenden. Sie könnten auch `from starlette.testclient import TestClient` verwenden.
@ -48,7 +48,7 @@ Sie könnten auch `from starlette.testclient import TestClient` verwenden.
/// ///
/// tip | "Tipp" /// tip | Tipp
Wenn Sie in Ihren Tests neben dem Senden von Anfragen an Ihre FastAPI-Anwendung auch `async`-Funktionen aufrufen möchten (z. B. asynchrone Datenbankfunktionen), werfen Sie einen Blick auf die [Async-Tests](../advanced/async-tests.md){.internal-link target=_blank} im Handbuch für fortgeschrittene Benutzer. Wenn Sie in Ihren Tests neben dem Senden von Anfragen an Ihre FastAPI-Anwendung auch `async`-Funktionen aufrufen möchten (z. B. asynchrone Datenbankfunktionen), werfen Sie einen Blick auf die [Async-Tests](../advanced/async-tests.md){.internal-link target=_blank} im Handbuch für fortgeschrittene Benutzer.
@ -148,7 +148,7 @@ Beide *Pfadoperationen* erfordern einen `X-Token`-Header.
//// tab | Python 3.10+ nicht annotiert //// tab | Python 3.10+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.
@ -162,7 +162,7 @@ Bevorzugen Sie die `Annotated`-Version, falls möglich.
//// tab | Python 3.8+ nicht annotiert //// tab | Python 3.8+ nicht annotiert
/// tip | "Tipp" /// tip | Tipp
Bevorzugen Sie die `Annotated`-Version, falls möglich. Bevorzugen Sie die `Annotated`-Version, falls möglich.

2
docs/em/docs/advanced/additional-status-codes.md

@ -28,7 +28,7 @@
/// ///
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.responses import JSONResponse`. 👆 💪 ⚙️ `from starlette.responses import JSONResponse`.

2
docs/em/docs/advanced/behind-a-proxy.md

@ -80,7 +80,7 @@ $ uvicorn main:app --root-path /api/v1
🚥 👆 ⚙️ Hypercorn, ⚫️ ✔️ 🎛 `--root-path`. 🚥 👆 ⚙️ Hypercorn, ⚫️ ✔️ 🎛 `--root-path`.
/// note | "📡 ℹ" /// note | 📡 ℹ
🔫 🔧 🔬 `root_path` 👉 ⚙️ 💼. 🔫 🔧 🔬 `root_path` 👉 ⚙️ 💼.

2
docs/em/docs/advanced/custom-response.md

@ -121,7 +121,7 @@
✔️ 🤯 👈 👆 💪 ⚙️ `Response` 📨 🕳 🙆, ⚖️ ✍ 🛃 🎧-🎓. ✔️ 🤯 👈 👆 💪 ⚙️ `Response` 📨 🕳 🙆, ⚖️ ✍ 🛃 🎧-🎓.
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.responses import HTMLResponse`. 👆 💪 ⚙️ `from starlette.responses import HTMLResponse`.

2
docs/em/docs/advanced/middleware.md

@ -43,7 +43,7 @@ app.add_middleware(UnicornMiddleware, some_config="rainbow")
**FastAPI** 🔌 📚 🛠️ ⚠ ⚙️ 💼, 👥 🔜 👀 ⏭ ❔ ⚙️ 👫. **FastAPI** 🔌 📚 🛠️ ⚠ ⚙️ 💼, 👥 🔜 👀 ⏭ ❔ ⚙️ 👫.
/// note | "📡 ℹ" /// note | 📡 ℹ
⏭ 🖼, 👆 💪 ⚙️ `from starlette.middleware.something import SomethingMiddleware`. ⏭ 🖼, 👆 💪 ⚙️ `from starlette.middleware.something import SomethingMiddleware`.

2
docs/em/docs/advanced/path-operation-advanced-configuration.md

@ -74,7 +74,7 @@
🕐❔ 👆 📣 *➡ 🛠️* 👆 🈸, **FastAPI** 🔁 🏗 🔗 🗃 🔃 👈 *➡ 🛠️* 🔌 🗄 🔗. 🕐❔ 👆 📣 *➡ 🛠️* 👆 🈸, **FastAPI** 🔁 🏗 🔗 🗃 🔃 👈 *➡ 🛠️* 🔌 🗄 🔗.
/// note | "📡 ℹ" /// note | 📡 ℹ
🗄 🔧 ⚫️ 🤙 <a href="https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operation-object" class="external-link" target="_blank">🛠️ 🎚</a>. 🗄 🔧 ⚫️ 🤙 <a href="https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operation-object" class="external-link" target="_blank">🛠️ 🎚</a>.

2
docs/em/docs/advanced/response-cookies.md

@ -42,7 +42,7 @@
### 🌅 ℹ ### 🌅 ℹ
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.responses import Response` ⚖️ `from starlette.responses import JSONResponse`. 👆 💪 ⚙️ `from starlette.responses import Response` ⚖️ `from starlette.responses import JSONResponse`.

2
docs/em/docs/advanced/response-directly.md

@ -38,7 +38,7 @@
{!../../docs_src/response_directly/tutorial001.py!} {!../../docs_src/response_directly/tutorial001.py!}
``` ```
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.responses import JSONResponse`. 👆 💪 ⚙️ `from starlette.responses import JSONResponse`.

2
docs/em/docs/advanced/response-headers.md

@ -28,7 +28,7 @@
{!../../docs_src/response_headers/tutorial001.py!} {!../../docs_src/response_headers/tutorial001.py!}
``` ```
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.responses import Response` ⚖️ `from starlette.responses import JSONResponse`. 👆 💪 ⚙️ `from starlette.responses import Response` ⚖️ `from starlette.responses import JSONResponse`.

2
docs/em/docs/advanced/security/oauth2-scopes.md

@ -134,7 +134,7 @@ Oauth2️⃣ 👫 🎻.
{!../../docs_src/security/tutorial005.py!} {!../../docs_src/security/tutorial005.py!}
``` ```
/// info | "📡 ℹ" /// info | 📡 ℹ
`Security` 🤙 🏿 `Depends`, &amp; ⚫️ ✔️ 1️⃣ ➕ 🔢 👈 👥 🔜 👀 ⏪. `Security` 🤙 🏿 `Depends`, &amp; ⚫️ ✔️ 1️⃣ ➕ 🔢 👈 👥 🔜 👀 ⏪.

2
docs/em/docs/advanced/templates.md

@ -43,7 +43,7 @@ $ pip install jinja2
/// ///
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.templating import Jinja2Templates`. 👆 💪 ⚙️ `from starlette.templating import Jinja2Templates`.

2
docs/em/docs/advanced/using-request-directly.md

@ -49,7 +49,7 @@
👆 💪 ✍ 🌅 ℹ 🔃 <a href="https://www.starlette.io/requests/" class="external-link" target="_blank">`Request` 🎚 🛂 💃 🧾 🕸</a>. 👆 💪 ✍ 🌅 ℹ 🔃 <a href="https://www.starlette.io/requests/" class="external-link" target="_blank">`Request` 🎚 🛂 💃 🧾 🕸</a>.
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.requests import Request`. 👆 💪 ⚙️ `from starlette.requests import Request`.

2
docs/em/docs/advanced/websockets.md

@ -50,7 +50,7 @@ $ pip install websockets
{!../../docs_src/websockets/tutorial001.py!} {!../../docs_src/websockets/tutorial001.py!}
``` ```
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.websockets import WebSocket`. 👆 💪 ⚙️ `from starlette.websockets import WebSocket`.

38
docs/em/docs/alternatives.md

@ -36,7 +36,7 @@
/// ///
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
✔️ 🏧 🛠️ 🧾 🕸 👩‍💻 🔢. ✔️ 🏧 🛠️ 🧾 🕸 👩‍💻 🔢.
@ -56,7 +56,7 @@
👐 🦁 🏺, ⚫️ 😑 💖 👍 🏏 🏗 🔗. ⏭ 👜 🔎 "✳ 🎂 🛠️" 🏺. 👐 🦁 🏺, ⚫️ 😑 💖 👍 🏏 🏗 🔗. ⏭ 👜 🔎 "✳ 🎂 🛠️" 🏺.
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
◾-🛠️. ⚒ ⚫️ ⏩ 🌀 &amp; 🏏 🧰 &amp; 🍕 💪. ◾-🛠️. ⚒ ⚫️ ⏩ 🌀 &amp; 🏏 🧰 &amp; 🍕 💪.
@ -98,7 +98,7 @@ def read_url():
👀 🔀 `requests.get(...)` &amp; `@app.get(...)`. 👀 🔀 `requests.get(...)` &amp; `@app.get(...)`.
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
* ✔️ 🙅 &amp; 🏋️ 🛠️. * ✔️ 🙅 &amp; 🏋️ 🛠️.
* ⚙️ 🇺🇸🔍 👩‍🔬 📛 (🛠️) 🔗, 🎯 &amp; 🏋️ 🌌. * ⚙️ 🇺🇸🔍 👩‍🔬 📛 (🛠️) 🔗, 🎯 &amp; 🏋️ 🌌.
@ -118,7 +118,7 @@ def read_url():
👈 ⚫️❔ 🕐❔ 💬 🔃 ⏬ 2️⃣.0️⃣ ⚫️ ⚠ 💬 "🦁", &amp; ⏬ 3️⃣ ➕ "🗄". 👈 ⚫️❔ 🕐❔ 💬 🔃 ⏬ 2️⃣.0️⃣ ⚫️ ⚠ 💬 "🦁", &amp; ⏬ 3️⃣ ➕ "🗄".
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🛠️ &amp; ⚙️ 📂 🐩 🛠️ 🔧, ↩️ 🛃 🔗. 🛠️ &amp; ⚙️ 📂 🐩 🛠️ 🔧, ↩️ 🛃 🔗.
@ -147,7 +147,7 @@ def read_url():
✋️ ⚫️ ✍ ⏭ 📤 🔀 🐍 🆎 🔑. , 🔬 🔠 <abbr title="the definition of how data should be formed">🔗</abbr> 👆 💪 ⚙️ 🎯 🇨🇻 &amp; 🎓 🚚 🍭. ✋️ ⚫️ ✍ ⏭ 📤 🔀 🐍 🆎 🔑. , 🔬 🔠 <abbr title="the definition of how data should be formed">🔗</abbr> 👆 💪 ⚙️ 🎯 🇨🇻 &amp; 🎓 🚚 🍭.
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
⚙️ 📟 🔬 "🔗" 👈 🚚 💽 🆎 &amp; 🔬, 🔁. ⚙️ 📟 🔬 "🔗" 👈 🚚 💽 🆎 &amp; 🔬, 🔁.
@ -169,7 +169,7 @@ Webarg ✍ 🎏 🍭 👩‍💻.
/// ///
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
✔️ 🏧 🔬 📨 📨 💽. ✔️ 🏧 🔬 📨 📨 💽.
@ -199,7 +199,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
/// ///
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🐕‍🦺 📂 🐩 🛠️, 🗄. 🐕‍🦺 📂 🐩 🛠️, 🗄.
@ -231,7 +231,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
/// ///
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🏗 🗄 🔗 🔁, ⚪️➡️ 🎏 📟 👈 🔬 🛠️ &amp; 🔬. 🏗 🗄 🔗 🔁, ⚪️➡️ 🎏 📟 👈 🔬 🛠️ &amp; 🔬.
@ -251,7 +251,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
⚫️ 💪 🚫 🍵 🔁 🏷 📶 👍. , 🚥 🎻 💪 📨 🎻 🎚 👈 ✔️ 🔘 🏑 👈 🔄 🐦 🎻 🎚, ⚫️ 🚫🔜 ☑ 📄 &amp; ✔. ⚫️ 💪 🚫 🍵 🔁 🏷 📶 👍. , 🚥 🎻 💪 📨 🎻 🎚 👈 ✔️ 🔘 🏑 👈 🔄 🐦 🎻 🎚, ⚫️ 🚫🔜 ☑ 📄 &amp; ✔.
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
⚙️ 🐍 🆎 ✔️ 👑 👨‍🎨 🐕‍🦺. ⚙️ 🐍 🆎 ✔️ 👑 👨‍🎨 🐕‍🦺.
@ -263,7 +263,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
⚫️ 🕐 🥇 📶 ⏩ 🐍 🛠️ ⚓️ 🔛 `asyncio`. ⚫️ ⚒ 📶 🎏 🏺. ⚫️ 🕐 🥇 📶 ⏩ 🐍 🛠️ ⚓️ 🔛 `asyncio`. ⚫️ ⚒ 📶 🎏 🏺.
/// note | "📡 ℹ" /// note | 📡 ℹ
⚫️ ⚙️ <a href="https://github.com/MagicStack/uvloop" class="external-link" target="_blank">`uvloop`</a> ↩️ 🔢 🐍 `asyncio` ➰. 👈 ⚫️❔ ⚒ ⚫️ ⏩. ⚫️ ⚙️ <a href="https://github.com/MagicStack/uvloop" class="external-link" target="_blank">`uvloop`</a> ↩️ 🔢 🐍 `asyncio` ➰. 👈 ⚫️❔ ⚒ ⚫️ ⏩.
@ -271,7 +271,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
/// ///
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🔎 🌌 ✔️ 😜 🎭. 🔎 🌌 ✔️ 😜 🎭.
@ -287,7 +287,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
, 💽 🔬, 🛠️, &amp; 🧾, ✔️ ⌛ 📟, 🚫 🔁. ⚖️ 👫 ✔️ 🛠️ 🛠️ 🔛 🔝 🦅, 💖 🤗. 👉 🎏 🔺 🔨 🎏 🛠️ 👈 😮 🦅 🔧, ✔️ 1️⃣ 📨 🎚 &amp; 1️⃣ 📨 🎚 🔢. , 💽 🔬, 🛠️, &amp; 🧾, ✔️ ⌛ 📟, 🚫 🔁. ⚖️ 👫 ✔️ 🛠️ 🛠️ 🔛 🔝 🦅, 💖 🤗. 👉 🎏 🔺 🔨 🎏 🛠️ 👈 😮 🦅 🔧, ✔️ 1️⃣ 📨 🎚 &amp; 1️⃣ 📨 🎚 🔢.
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🔎 🌌 🤚 👑 🎭. 🔎 🌌 🤚 👑 🎭.
@ -313,7 +313,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
🛣 📣 👁 🥉, ⚙️ 🔢 📣 🎏 🥉 (↩️ ⚙️ 👨‍🎨 👈 💪 🥉 ▶️️ 🔛 🔝 🔢 👈 🍵 🔗). 👉 🔐 ❔ ✳ 🔨 ⚫️ 🌘 ❔ 🏺 (&amp; 💃) 🔨 ⚫️. ⚫️ 🎏 📟 👜 👈 📶 😆 🔗. 🛣 📣 👁 🥉, ⚙️ 🔢 📣 🎏 🥉 (↩️ ⚙️ 👨‍🎨 👈 💪 🥉 ▶️️ 🔛 🔝 🔢 👈 🍵 🔗). 👉 🔐 ❔ ✳ 🔨 ⚫️ 🌘 ❔ 🏺 (&amp; 💃) 🔨 ⚫️. ⚫️ 🎏 📟 👜 👈 📶 😆 🔗.
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🔬 ➕ 🔬 💽 🆎 ⚙️ "🔢" 💲 🏷 🔢. 👉 📉 👨‍🎨 🐕‍🦺, &amp; ⚫️ 🚫 💪 Pydantic ⏭. 🔬 ➕ 🔬 💽 🆎 ⚙️ "🔢" 💲 🏷 🔢. 👉 📉 👨‍🎨 🐕‍🦺, &amp; ⚫️ 🚫 💪 Pydantic ⏭.
@ -341,7 +341,7 @@ APISpec ✍ 🎏 🍭 👩‍💻.
/// ///
/// check | "💭 😮 **FastAPI**" /// check | 💭 😮 **FastAPI**
🤗 😮 🍕 APIStar, &amp; 1️⃣ 🧰 👤 🔎 🏆 👍, 🌟 APIStar. 🤗 😮 🍕 APIStar, &amp; 1️⃣ 🧰 👤 🔎 🏆 👍, 🌟 APIStar.
@ -385,7 +385,7 @@ APIStar ✍ ✡ 🇺🇸🏛. 🎏 👨 👈 ✍:
/// ///
/// check | "😮 **FastAPI** " /// check | 😮 **FastAPI**
🔀. 🔀.
@ -409,7 +409,7 @@ Pydantic 🗃 🔬 💽 🔬, 🛠️ &amp; 🧾 (⚙️ 🎻 🔗) ⚓️ 🔛
⚫️ ⭐ 🍭. 👐 ⚫️ ⏩ 🌘 🍭 📇. &amp; ⚫️ ⚓️ 🔛 🎏 🐍 🆎 🔑, 👨‍🎨 🐕‍🦺 👑. ⚫️ ⭐ 🍭. 👐 ⚫️ ⏩ 🌘 🍭 📇. &amp; ⚫️ ⚓️ 🔛 🎏 🐍 🆎 🔑, 👨‍🎨 🐕‍🦺 👑.
/// check | "**FastAPI** ⚙️ ⚫️" /// check | **FastAPI** ⚙️ ⚫️
🍵 🌐 💽 🔬, 💽 🛠️ &amp; 🏧 🏷 🧾 (⚓️ 🔛 🎻 🔗). 🍵 🌐 💽 🔬, 💽 🛠️ &amp; 🏧 🏷 🧾 (⚓️ 🔛 🎻 🔗).
@ -444,7 +444,7 @@ Pydantic 🗃 🔬 💽 🔬, 🛠️ &amp; 🧾 (⚙️ 🎻 🔗) ⚓️ 🔛
👈 1️⃣ 👑 👜 👈 **FastAPI** 🚮 🔛 🔝, 🌐 ⚓️ 🔛 🐍 🆎 🔑 (⚙️ Pydantic). 👈, ➕ 🔗 💉 ⚙️, 💂‍♂ 🚙, 🗄 🔗 ⚡, ♒️. 👈 1️⃣ 👑 👜 👈 **FastAPI** 🚮 🔛 🔝, 🌐 ⚓️ 🔛 🐍 🆎 🔑 (⚙️ Pydantic). 👈, ➕ 🔗 💉 ⚙️, 💂‍♂ 🚙, 🗄 🔗 ⚡, ♒️.
/// note | "📡 ℹ" /// note | 📡 ℹ
🔫 🆕 "🐩" ➖ 🛠️ ✳ 🐚 🏉 👨‍🎓. ⚫️ 🚫 "🐍 🐩" (🇩🇬), 👐 👫 🛠️ 🔨 👈. 🔫 🆕 "🐩" ➖ 🛠️ ✳ 🐚 🏉 👨‍🎓. ⚫️ 🚫 "🐍 🐩" (🇩🇬), 👐 👫 🛠️ 🔨 👈.
@ -452,7 +452,7 @@ Pydantic 🗃 🔬 💽 🔬, 🛠️ &amp; 🧾 (⚙️ 🎻 🔗) ⚓️ 🔛
/// ///
/// check | "**FastAPI** ⚙️ ⚫️" /// check | **FastAPI** ⚙️ ⚫️
🍵 🌐 🐚 🕸 🍕. ❎ ⚒ 🔛 🔝. 🍵 🌐 🐚 🕸 🍕. ❎ ⚒ 🔛 🔝.
@ -470,7 +470,7 @@ Uvicorn 🌩-⏩ 🔫 💽, 🏗 🔛 uvloop &amp; httptool.
⚫️ 👍 💽 💃 &amp; **FastAPI**. ⚫️ 👍 💽 💃 &amp; **FastAPI**.
/// check | "**FastAPI** 👍 ⚫️" /// check | **FastAPI** 👍 ⚫️
👑 🕸 💽 🏃 **FastAPI** 🈸. 👑 🕸 💽 🏃 **FastAPI** 🈸.

2
docs/em/docs/how-to/custom-request-and-route.md

@ -60,7 +60,7 @@
{!../../docs_src/custom_request_and_route/tutorial001.py!} {!../../docs_src/custom_request_and_route/tutorial001.py!}
``` ```
/// note | "📡 ℹ" /// note | 📡 ℹ
`Request` ✔️ `request.scope` 🔢, 👈 🐍 `dict` ⚗ 🗃 🔗 📨. `Request` ✔️ `request.scope` 🔢, 👈 🐍 `dict` ⚗ 🗃 🔗 📨.

4
docs/em/docs/tutorial/bigger-applications.md

@ -414,7 +414,7 @@ from .routers.users import router
⚫️ 🔜 🔌 🌐 🛣 ⚪️➡️ 👈 📻 🍕 ⚫️. ⚫️ 🔜 🔌 🌐 🛣 ⚪️➡️ 👈 📻 🍕 ⚫️.
/// note | "📡 ℹ" /// note | 📡 ℹ
⚫️ 🔜 🤙 🔘 ✍ *➡ 🛠️* 🔠 *➡ 🛠️* 👈 📣 `APIRouter`. ⚫️ 🔜 🤙 🔘 ✍ *➡ 🛠️* 🔠 *➡ 🛠️* 👈 📣 `APIRouter`.
@ -477,7 +477,7 @@ from .routers.users import router
&amp; ⚫️ 🔜 👷 ☑, 👯‍♂️ ⏮️ 🌐 🎏 *➡ 🛠️* 🚮 ⏮️ `app.include_router()`. &amp; ⚫️ 🔜 👷 ☑, 👯‍♂️ ⏮️ 🌐 🎏 *➡ 🛠️* 🚮 ⏮️ `app.include_router()`.
/// info | "📶 📡 ℹ" /// info | 📶 📡 ℹ
**🗒**: 👉 📶 📡 ℹ 👈 👆 🎲 💪 **🚶**. **🗒**: 👉 📶 📡 ℹ 👈 👆 🎲 💪 **🚶**.

2
docs/em/docs/tutorial/body-fields.md

@ -50,7 +50,7 @@
`Field` 👷 🎏 🌌 `Query`, `Path` &amp; `Body`, ⚫️ ✔️ 🌐 🎏 🔢, ♒️. `Field` 👷 🎏 🌌 `Query`, `Path` &amp; `Body`, ⚫️ ✔️ 🌐 🎏 🔢, ♒️.
/// note | "📡 ℹ" /// note | 📡 ℹ
🤙, `Query`, `Path` &amp; 🎏 👆 🔜 👀 ⏭ ✍ 🎚 🏿 ⚠ `Param` 🎓, ❔ ⚫️ 🏿 Pydantic `FieldInfo` 🎓. 🤙, `Query`, `Path` &amp; 🎏 👆 🔜 👀 ⏭ ✍ 🎚 🏿 ⚠ `Param` 🎓, ❔ ⚫️ 🏿 Pydantic `FieldInfo` 🎓.

2
docs/em/docs/tutorial/cookie-params.md

@ -44,7 +44,7 @@
//// ////
/// note | "📡 ℹ" /// note | 📡 ℹ
`Cookie` "👭" 🎓 `Path` &amp; `Query`. ⚫️ 😖 ⚪️➡️ 🎏 ⚠ `Param` 🎓. `Cookie` "👭" 🎓 `Path` &amp; `Query`. ⚫️ 😖 ⚪️➡️ 🎏 ⚠ `Param` 🎓.

2
docs/em/docs/tutorial/cors.md

@ -78,7 +78,7 @@
🌖 ℹ 🔃 <abbr title="Cross-Origin Resource Sharing"></abbr>, ✅ <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" class="external-link" target="_blank">🦎 ⚜ 🧾</a>. 🌖 ℹ 🔃 <abbr title="Cross-Origin Resource Sharing"></abbr>, ✅ <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" class="external-link" target="_blank">🦎 ⚜ 🧾</a>.
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.middleware.cors import CORSMiddleware`. 👆 💪 ⚙️ `from starlette.middleware.cors import CORSMiddleware`.

4
docs/em/docs/tutorial/dependencies/dependencies-with-yield.md

@ -10,7 +10,7 @@ FastAPI 🐕‍🦺 🔗 👈 <abbr title='sometimes also called "exit", "cleanu
/// ///
/// note | "📡 ℹ" /// note | 📡 ℹ
🙆 🔢 👈 ☑ ⚙️ ⏮️: 🙆 🔢 👈 ☑ ⚙️ ⏮️:
@ -97,7 +97,7 @@ FastAPI 🐕‍🦺 🔗 👈 <abbr title='sometimes also called "exit", "cleanu
**FastAPI** 🔜 ⚒ 💭 🌐 🏃 ☑ ✔. **FastAPI** 🔜 ⚒ 💭 🌐 🏃 ☑ ✔.
/// note | "📡 ℹ" /// note | 📡 ℹ
👉 👷 👏 🐍 <a href="https://docs.python.org/3/library/contextlib.html" class="external-link" target="_blank">🔑 👨‍💼</a>. 👉 👷 👏 🐍 <a href="https://docs.python.org/3/library/contextlib.html" class="external-link" target="_blank">🔑 👨‍💼</a>.

4
docs/em/docs/tutorial/first-steps.md

@ -139,7 +139,7 @@ INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
`FastAPI` 🐍 🎓 👈 🚚 🌐 🛠️ 👆 🛠️. `FastAPI` 🐍 🎓 👈 🚚 🌐 🛠️ 👆 🛠️.
/// note | "📡 ℹ" /// note | 📡 ℹ
`FastAPI` 🎓 👈 😖 🔗 ⚪️➡️ `Starlette`. `FastAPI` 🎓 👈 😖 🔗 ⚪️➡️ `Starlette`.
@ -259,7 +259,7 @@ https://example.com/items/foo
* ➡ `/` * ➡ `/`
* ⚙️ <abbr title="an HTTP GET method"><code>get</code> 🛠️</abbr> * ⚙️ <abbr title="an HTTP GET method"><code>get</code> 🛠️</abbr>
/// info | "`@decorator` ℹ" /// info | `@decorator`
👈 `@something` ❕ 🐍 🤙 "👨‍🎨". 👈 `@something` ❕ 🐍 🤙 "👨‍🎨".

4
docs/em/docs/tutorial/handling-errors.md

@ -109,7 +109,7 @@
{"message": "Oops! yolo did something. There goes a rainbow..."} {"message": "Oops! yolo did something. There goes a rainbow..."}
``` ```
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.requests import Request` &amp; `from starlette.responses import JSONResponse`. 👆 💪 ⚙️ `from starlette.requests import Request` &amp; `from starlette.responses import JSONResponse`.
@ -192,7 +192,7 @@ path -> item_id
{!../../docs_src/handling_errors/tutorial004.py!} {!../../docs_src/handling_errors/tutorial004.py!}
``` ```
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.responses import PlainTextResponse`. 👆 💪 ⚙️ `from starlette.responses import PlainTextResponse`.

2
docs/em/docs/tutorial/header-params.md

@ -44,7 +44,7 @@
//// ////
/// note | "📡 ℹ" /// note | 📡 ℹ
`Header` "👭" 🎓 `Path`, `Query` &amp; `Cookie`. ⚫️ 😖 ⚪️➡️ 🎏 ⚠ `Param` 🎓. `Header` "👭" 🎓 `Path`, `Query` &amp; `Cookie`. ⚫️ 😖 ⚪️➡️ 🎏 ⚠ `Param` 🎓.

4
docs/em/docs/tutorial/middleware.md

@ -11,7 +11,7 @@
* ⚫️ 💪 🕳 👈 **📨** ⚖️ 🏃 🙆 💪 📟. * ⚫️ 💪 🕳 👈 **📨** ⚖️ 🏃 🙆 💪 📟.
* ⤴️ ⚫️ 📨 **📨**. * ⤴️ ⚫️ 📨 **📨**.
/// note | "📡 ℹ" /// note | 📡 ℹ
🚥 👆 ✔️ 🔗 ⏮️ `yield`, 🚪 📟 🔜 🏃 *⏮️* 🛠️. 🚥 👆 ✔️ 🔗 ⏮️ `yield`, 🚪 📟 🔜 🏃 *⏮️* 🛠️.
@ -43,7 +43,7 @@
/// ///
/// note | "📡 ℹ" /// note | 📡 ℹ
👆 💪 ⚙️ `from starlette.requests import Request`. 👆 💪 ⚙️ `from starlette.requests import Request`.

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save