Browse Source
There are a few more changes here than necessary, because I created these translations from scratch without an existing translation and without wordlists in the German LLM, to learn which words the AI actually needs to have defined (less than expected). I then was too lazy to remove the not super necessary changes, :-D. But The translations are good, I manually checked them. You may apply this commit on #13929. Regenerating it is not necessary.pull/13929/head
committed by
Yurii Motov
11 changed files with 318 additions and 318 deletions
@ -1,7 +1,7 @@ |
|||
# Testen einer Datenbank |
|||
|
|||
Sie können mehr über Datenbanken, SQL und SQLModel in den <a href="https://sqlmodel.tiangolo.com/" class="external-link" target="_blank">SQLModel-Dokumentationen</a> lernen. 🤓 |
|||
Sie können sich über Datenbanken, SQL und SQLModel in der <a href="https://sqlmodel.tiangolo.com/" class="external-link" target="_blank">SQLModel-Dokumentation</a> informieren. 🤓 |
|||
|
|||
Es gibt ein Mini-<a href="https://sqlmodel.tiangolo.com/tutorial/fastapi/" class="external-link" target="_blank">Tutorial zur Verwendung von SQLModel mit FastAPI</a>. ✨ |
|||
Es gibt ein kurzes <a href="https://sqlmodel.tiangolo.com/tutorial/fastapi/" class="external-link" target="_blank">Tutorial zur Verwendung von SQLModel mit FastAPI</a>. ✨ |
|||
|
|||
Dieses Tutorial enthält einen Abschnitt über das <a href="https://sqlmodel.tiangolo.com/tutorial/fastapi/tests/" class="external-link" target="_blank">Testen von SQL-Datenbanken</a>. 😎 |
|||
|
@ -1,88 +1,88 @@ |
|||
# CORS (Cross-Origin Resource Sharing) |
|||
|
|||
<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" class="external-link" target="_blank">CORS oder „Cross-Origin Resource Sharing“</a> bezieht sich auf die Situationen, in denen ein Frontend, das in einem Browser läuft, JavaScript-Code enthält, der mit einem Backend kommuniziert, und das Backend sich in einem anderen „Ursprung“ als das Frontend befindet. |
|||
<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" class="external-link" target="_blank">CORS oder „Cross-Origin Resource Sharing“</a> (deutsch: Ursprungsübergreifende Ressourcenfreigabe) bezieht sich auf Situationen, in denen ein Frontend, das in einem Browser läuft, JavaScript-Code enthält, der mit einem Backend kommuniziert, und das Backend sich in einem anderen „Origin“ als das Frontend befindet. |
|||
|
|||
## Ursprung |
|||
## Origin |
|||
|
|||
Ein Ursprung ist die Kombination aus Protokoll (`http`, `https`), Domain (`myapp.com`, `localhost`, `localhost.tiangolo.com`) und Port (`80`, `443`, `8080`). |
|||
Ein Origin (deutsch: Ursprung) ist die Kombination aus Protokoll (`http`, `https`), Domain (`myapp.com`, `localhost`, `localhost.tiangolo.com`) und Port (`80`, `443`, `8080`). |
|||
|
|||
Also sind all diese unterschiedliche Ursprünge: |
|||
Alle folgenden sind also unterschiedliche Origins: |
|||
|
|||
* `http://localhost` |
|||
* `https://localhost` |
|||
* `http://localhost:8080` |
|||
|
|||
Auch wenn sie alle auf `localhost` sind, verwenden sie unterschiedliche Protokolle oder Ports, also sind sie verschiedene „Ursprünge“. |
|||
Auch wenn sie alle in `localhost` sind, verwenden sie unterschiedliche Protokolle oder Ports, daher sind sie unterschiedliche „Origins“. |
|||
|
|||
## Schritte |
|||
|
|||
Nehmen wir also an, Sie haben ein Frontend, das in Ihrem Browser unter `http://localhost:8080` läuft, und dessen JavaScript versucht, mit einem Backend zu kommunizieren, das unter `http://localhost` läuft (da wir keinen Port angeben, nimmt der Browser den Defaultport `80` an). |
|||
Angenommen, Sie haben ein Frontend, das in Ihrem Browser unter `http://localhost:8080` läuft, und dessen JavaScript versucht, mit einem Backend zu kommunizieren, das unter `http://localhost` läuft (da wir keinen Port angegeben haben, geht der Browser vom Default-Port `80` aus). |
|||
|
|||
Dann wird der Browser einen HTTP `OPTIONS`-Request an das `:80`-Backend senden, und wenn das Backend die entsprechenden Header sendet, die die Kommunikation von diesem anderen Ursprung (`http://localhost:8080`) autorisieren, dann lässt der `:8080`-Browser das JavaScript im Frontend seine Anfrage an das `:80`-Backend senden. |
|||
Dann wird der Browser ein HTTP-`OPTIONS`-Request an das `:80`-Backend senden, und wenn das Backend die entsprechenden Header sendet, die die Kommunikation von diesem anderen Origin (`http://localhost:8080`) autorisieren, lässt der `:8080`-Browser das JavaScript im Frontend seinen Request an das `:80`-Backend senden. |
|||
|
|||
Um dies zu erreichen, muss das `:80`-Backend eine Liste von „erlaubten Ursprüngen“ haben. |
|||
Um dies zu erreichen, muss das `:80`-Backend eine Liste von „erlaubten Origins“ haben. |
|||
|
|||
In diesem Fall müsste die Liste `http://localhost:8080` enthalten, damit das `:8080`-Frontend korrekt funktioniert. |
|||
|
|||
## Wildcards |
|||
|
|||
Es ist auch möglich, die Liste als `"*"` (ein „Wildcard“) anzugeben, um zu sagen, dass alle erlaubt sind. |
|||
Es ist auch möglich, die Liste als `"*"` (ein „Wildcard“) zu deklarieren, um anzuzeigen, dass alle erlaubt sind. |
|||
|
|||
Aber das wird nur bestimmte Arten der Kommunikation erlauben, alles ausschließend, was Anmeldeinformationen umfasst: Cookies, Authorization-Header wie diejenigen, die mit Bearer-Tokens verwendet werden, usw. |
|||
Aber das erlaubt nur bestimmte Arten der Kommunikation und schließt alles aus, was Anmeldeinformationen beinhaltet: Cookies, Autorisierungsheader wie die, die mit Bearer Tokens verwendet werden, usw. |
|||
|
|||
Daher ist es besser, die erlaubten Ursprünge explizit anzugeben, damit alles korrekt funktioniert. |
|||
Um sicherzustellen, dass alles korrekt funktioniert, ist es besser, die erlaubten Origins explizit anzugeben. |
|||
|
|||
## Verwenden Sie `CORSMiddleware` |
|||
## `CORSMiddleware` verwenden |
|||
|
|||
Sie können es in Ihrer **FastAPI**-Anwendung mit der `CORSMiddleware` konfigurieren. |
|||
Sie können das in Ihrer **FastAPI**-Anwendung mit der `CORSMiddleware` konfigurieren. |
|||
|
|||
* Importieren Sie `CORSMiddleware`. |
|||
* Erstellen Sie eine Liste der erlaubten Ursprünge (als Strings). |
|||
* Fügen Sie es Ihrer **FastAPI**-Anwendung als „Middleware“ hinzu. |
|||
* Erstellen Sie eine Liste der erlaubten Origins (als Strings). |
|||
* Fügen Sie es als „Middleware“ zu Ihrer **FastAPI**-Anwendung hinzu. |
|||
|
|||
Sie können auch angeben, ob Ihr Backend Folgendes zulässt: |
|||
Sie können auch angeben, ob Ihr Backend erlaubt: |
|||
|
|||
* Anmeldeinformationen (Authorization-Header, Cookies, usw.). |
|||
* Bestimmte HTTP-Methoden (`POST`, `PUT`) oder alle mit dem Wildcard `"*"`. |
|||
* Bestimmte HTTP-Header oder alle mit dem Wildcard `"*"`. |
|||
* Anmeldeinformationen (Autorisierungsheader, Cookies, usw.). |
|||
* Bestimmte HTTP-Methoden (`POST`, `PUT`) oder alle mit der Wildcard `"*"`. |
|||
* Bestimmte HTTP-Header oder alle mit der Wildcard `"*"`. |
|||
|
|||
{* ../../docs_src/cors/tutorial001.py hl[2,6:11,13:19] *} |
|||
|
|||
Die von der `CORSMiddleware`-Implementierung verwendeten Defaultparameter sind standardmäßig restriktiv, daher müssen Sie bestimmte Ursprünge, Methoden oder Header explizit aktivieren, damit Browser sie in einem Cross-Domain-Kontext verwenden können. |
|||
Die von der `CORSMiddleware`-Implementierung verwendeten Defaultparameter sind standardmäßig restriktiv, daher müssen Sie bestimmte Origins, Methoden oder Header ausdrücklich aktivieren, damit Browser sie in einem Cross-Domain-Kontext verwenden dürfen. |
|||
|
|||
Die folgenden Argumente werden unterstützt: |
|||
|
|||
* `allow_origins` - Eine Liste von Ursprüngen, die Cross-Origin-Requests durchführen dürfen. Z.B. `['https://example.org', 'https://www.example.org']`. Sie können `['*']` verwenden, um jeden Ursprung zuzulassen. |
|||
* `allow_origin_regex` - Ein Regex-String, der mit Ursprüngen übereinstimmen muss, die Cross-Origin-Requests durchführen dürfen. z.B. `'https://.*\.example\.org'`. |
|||
* `allow_methods` - Eine Liste von HTTP-Methoden, die für Cross-Origin-Requests erlaubt sein sollten. Standardmäßig `['GET']`. Sie können `['*']` verwenden, um alle Standardmethoden zuzulassen. |
|||
* `allow_headers` - Eine Liste von HTTP-Anfrage-Headern, die für Cross-Origin-Requests unterstützt werden sollten. Standardmäßig `[]`. Sie können `['*']` verwenden, um alle Header zuzulassen. Die Header `Accept`, `Accept-Language`, `Content-Language` und `Content-Type` sind immer für <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests" class="external-link" rel="noopener" target="_blank">einfache CORS-Anfragen</a> erlaubt. |
|||
* `allow_credentials` - Zeigt an, dass Cookies für Cross-Origin-Requests unterstützt werden sollten. Standardmäßig `False`. |
|||
* `allow_origins` - Eine Liste von Origins, die Cross-Origin-Requests machen dürfen. z.B. `['https://example.org', 'https://www.example.org']`. Sie können `['*']` verwenden, um jedes Origin zuzulassen. |
|||
* `allow_origin_regex` - Ein Regex-String zum Abgleichen gegen Origins, die Cross-Origin-Requests machen dürfen. z.B. `'https://.*\.example\.org'`. |
|||
* `allow_methods` - Eine Liste von HTTP-Methoden, die für Cross-Origin-Requests erlaubt sein sollen. Standardmäßig `['GET']`. Sie können `['*']` verwenden, um alle Standardmethoden zu erlauben. |
|||
* `allow_headers` - Eine Liste von HTTP-Requestheadern, die für Cross-Origin-Requests unterstützt werden sollten. Standardmäßig `[]`. Sie können `['*']` verwenden, um alle Header zu erlauben. Die Header `Accept`, `Accept-Language`, `Content-Language` und `Content-Type` sind immer für <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests" class="external-link" rel="noopener" target="_blank">einfache CORS-Requests</a> erlaubt. |
|||
* `allow_credentials` - Anzeigen, dass Cookies für Cross-Origin-Requests unterstützt werden sollten. Standardmäßig `False`. |
|||
|
|||
Keiner der `allow_origins`, `allow_methods` und `allow_headers` kann auf `['*']` gesetzt werden, wenn `allow_credentials` auf `True` gesetzt ist. Alle müssen <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#credentialed_requests_and_wildcards" class="external-link" rel="noopener" target="_blank">explizit angegeben</a> werden. |
|||
Keines der `allow_origins`, `allow_methods` und `allow_headers` kann auf `['*']` gesetzt werden, wenn `allow_credentials` auf `True` gesetzt ist. Alle müssen <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#credentialed_requests_and_wildcards" class="external-link" rel="noopener" target="_blank">explizit angegeben</a> werden. |
|||
|
|||
* `expose_headers` - Gibt an, welche Response-Header dem Browser zugänglich gemacht werden sollen. Standardmäßig `[]`. |
|||
* `max_age` - Legt eine maximale Zeit in Sekunden fest, wie lange Browser CORS-Responses cachen dürfen. Standardmäßig `600`. |
|||
* `expose_headers` - Angabe der Responseheader, auf die der Browser zugreifen können soll. Standardmäßig `[]`. |
|||
* `max_age` - Legt eine maximale Zeit in Sekunden fest, die Browser CORS-Responses zwischenspeichern dürfen. Standardmäßig `600`. |
|||
|
|||
Die Middleware antwortet auf zwei besondere Arten von HTTP-Requests... |
|||
|
|||
### CORS Preflight-Anfragen |
|||
### CORS-Preflight-Requests |
|||
|
|||
Dies sind alle `OPTIONS`-Requests mit `Origin`- und `Access-Control-Request-Method`-Headern. |
|||
|
|||
In diesem Fall wird die Middleware den eingehenden Request abfangen und mit den entsprechenden CORS-Headern antworten und entweder eine `200`- oder `400`-Response zu Informationszwecken senden. |
|||
In diesem Fall wird die Middleware den eingehenden Request abfangen und mit entsprechenden CORS-Headern, und entweder einer `200`- oder `400`-Response zu Informationszwecken antworten. |
|||
|
|||
### Einfache Anfragen |
|||
### Einfache Requests |
|||
|
|||
Jede Anfrage mit einem `Origin`-Header. In diesem Fall wird die Middleware den Request normal durchlassen, aber die entsprechenden CORS-Header zur Response hinzufügen. |
|||
Jeder Request mit einem `Origin`-Header. In diesem Fall wird die Middleware den Request wie gewohnt durchlassen, aber entsprechende CORS-Header in die Response aufnehmen. |
|||
|
|||
## Weitere Informationen |
|||
|
|||
Für weitere Informationen über <abbr title="Cross-Origin Resource Sharing">CORS</abbr> lesen Sie die <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" class="external-link" target="_blank">Mozilla CORS Dokumentation</a>. |
|||
Weitere Informationen zu <abbr title="Cross-Origin Resource Sharing">CORS</abbr> finden Sie in der <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" class="external-link" target="_blank">Mozilla CORS-Dokumentation</a>. |
|||
|
|||
/// note | Technische Details |
|||
|
|||
Sie könnten auch `from starlette.middleware.cors import CORSMiddleware` verwenden. |
|||
|
|||
**FastAPI** bietet mehrere Middlewares in `fastapi.middleware` an, lediglich als Bequemlichkeit für Sie, den Entwickler. Aber die meisten der verfügbaren Middlewares stammen direkt von Starlette. |
|||
**FastAPI** bietet mehrere Middlewares in `fastapi.middleware` nur als Komfort für Sie, den Entwickler. Aber die meisten der verfügbaren Middlewares stammen direkt von Starlette. |
|||
|
|||
/// |
|||
|
Loading…
Reference in new issue