Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/ru/docs/_llm-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

Тесты:

## Фрагменты кода { #code-snippets}
## Фрагменты кода { #code-snippets }

//// tab | Тест

Expand Down Expand Up @@ -53,7 +53,7 @@ LLM, вероятно, переведёт это неправильно. Инт

////

## Кавычки во фрагментах кода { #quotes-in-code-snippets}
## Кавычки во фрагментах кода { #quotes-in-code-snippets }

//// tab | Тест

Expand Down
4 changes: 2 additions & 2 deletions docs/ru/docs/advanced/additional-responses.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@

Например, вы можете добавить дополнительный тип содержимого `image/png`, объявив, что ваша операция пути может возвращать JSON‑объект (с типом содержимого `application/json`) или PNG‑изображение:

{* ../../docs_src/additional_responses/tutorial002.py hl[19:24,28] *}
{* ../../docs_src/additional_responses/tutorial002_py310.py hl[17:22,26] *}

/// note | Примечание

Expand Down Expand Up @@ -237,7 +237,7 @@ new_dict = {**old_dict, "new key": "new value"}

Например:

{* ../../docs_src/additional_responses/tutorial004.py hl[13:17,26] *}
{* ../../docs_src/additional_responses/tutorial004_py310.py hl[11:15,24] *}

## Дополнительная информация об ответах OpenAPI { #more-information-about-openapi-responses }

Expand Down
2 changes: 1 addition & 1 deletion docs/ru/docs/advanced/advanced-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ checker(q="somequery")

### Фоновые задачи и зависимости с `yield`, технические детали { #background-tasks-and-dependencies-with-yield-technical-details }

До FastAPI 0.106.0 вызывать исключения после `yield` было невозможно: код после `yield` в зависимостях выполнялся уже после отправки ответа, поэтому [Обработчики исключений](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank} к тому моменту уже отработали.
До FastAPI 0.106.0 вызывать исключения после `yield` было невозможно: код после `yield` в зависимостях выполнялся уже после отправки ответа, поэтому [Обработчики исключений](../tutorial/handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank} к тому моменту уже отработали.

Так было сделано в основном для того, чтобы можно было использовать те же объекты, «отданные» зависимостями через `yield`, внутри фоновых задач, потому что код после `yield` выполнялся после завершения фоновых задач.

Expand Down
10 changes: 9 additions & 1 deletion docs/ru/docs/advanced/behind-a-proxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ https://mysuperapp.com/items/

///

### Как работают пересылаемые заголовки прокси
### Как работают пересылаемые заголовки прокси { #how-proxy-forwarded-headers-work }

Ниже показано, как прокси добавляет пересылаемые заголовки между клиентом и сервером приложения:

Expand Down Expand Up @@ -443,6 +443,14 @@ $ fastapi run main.py --forwarded-allow-ips="*" --root-path /api/v1

///

/// note | Технические детали

Свойство `servers` в спецификации OpenAPI является необязательным.

Если вы не укажете параметр `servers`, а `root_path` равен `/`, то свойство `servers` в сгенерированной схеме OpenAPI по умолчанию будет опущено. Это эквивалентно серверу со значением `url` равным `/`.

///

### Отключить автоматическое добавление сервера из `root_path` { #disable-automatic-server-from-root-path }

Если вы не хотите, чтобы FastAPI добавлял автоматический сервер, используя `root_path`, укажите параметр `root_path_in_servers=False`:
Expand Down
6 changes: 3 additions & 3 deletions docs/ru/docs/advanced/dataclasses.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ FastAPI построен поверх **Pydantic**, и я показывал в

Но FastAPI также поддерживает использование <a href="https://docs.python.org/3/library/dataclasses.html" class="external-link" target="_blank">`dataclasses`</a> тем же способом:

{* ../../docs_src/dataclasses/tutorial001.py hl[1,7:12,19:20] *}
{* ../../docs_src/dataclasses/tutorial001_py310.py hl[1,6:11,18:19] *}

Это по-прежнему поддерживается благодаря **Pydantic**, так как в нём есть <a href="https://docs.pydantic.dev/latest/concepts/dataclasses/#use-of-stdlib-dataclasses-with-basemodel" class="external-link" target="_blank">встроенная поддержка `dataclasses`</a>.

Expand Down Expand Up @@ -32,7 +32,7 @@ FastAPI построен поверх **Pydantic**, и я показывал в

Вы также можете использовать `dataclasses` в параметре `response_model`:

{* ../../docs_src/dataclasses/tutorial002.py hl[1,7:13,19] *}
{* ../../docs_src/dataclasses/tutorial002_py310.py hl[1,6:12,18] *}

Этот dataclass будет автоматически преобразован в Pydantic dataclass.

Expand All @@ -48,7 +48,7 @@ FastAPI построен поверх **Pydantic**, и я показывал в

В таком случае вы можете просто заменить стандартные `dataclasses` на `pydantic.dataclasses`, которая является полностью совместимой заменой (drop-in replacement):

{* ../../docs_src/dataclasses/tutorial003.py hl[1,5,8:11,14:17,23:25,28] *}
{* ../../docs_src/dataclasses/tutorial003_py310.py hl[1,4,7:10,13:16,22:24,27] *}

1. Мы по-прежнему импортируем `field` из стандартных `dataclasses`.

Expand Down
8 changes: 4 additions & 4 deletions docs/ru/docs/advanced/openapi-callbacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

Эта часть вполне обычна, большая часть кода вам уже знакома:

{* ../../docs_src/openapi_callbacks/tutorial001.py hl[9:13,36:53] *}
{* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[7:11,34:51] *}

/// tip | Совет

Expand Down Expand Up @@ -90,7 +90,7 @@ httpx.post(callback_url, json={"description": "Invoice paid", "paid": True})

Сначала создайте новый `APIRouter`, который будет содержать один или несколько обратных вызовов.

{* ../../docs_src/openapi_callbacks/tutorial001.py hl[3,25] *}
{* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[1,23] *}

### Создайте *операцию пути* для обратного вызова { #create-the-callback-path-operation }

Expand All @@ -101,7 +101,7 @@ httpx.post(callback_url, json={"description": "Invoice paid", "paid": True})
* Вероятно, в ней должно быть объявление тела запроса, например `body: InvoiceEvent`.
* А также может быть объявление модели ответа, например `response_model=InvoiceEventReceived`.

{* ../../docs_src/openapi_callbacks/tutorial001.py hl[16:18,21:22,28:32] *}
{* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[14:16,19:20,26:30] *}

Есть 2 основных отличия от обычной *операции пути*:

Expand Down Expand Up @@ -169,7 +169,7 @@ https://www.external.org/events/invoices/2expen51ve

Теперь используйте параметр `callbacks` в *декораторе операции пути вашего API*, чтобы передать атрибут `.routes` (это, по сути, просто `list` маршрутов/*операций пути*) из этого маршрутизатора обратных вызовов:

{* ../../docs_src/openapi_callbacks/tutorial001.py hl[35] *}
{* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[33] *}

/// tip | Совет

Expand Down
10 changes: 5 additions & 5 deletions docs/ru/docs/advanced/path-operation-advanced-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

Эта часть не попадёт в документацию, но другие инструменты (например, Sphinx) смогут использовать остальное.

{* ../../docs_src/path_operation_advanced_configuration/tutorial004.py hl[19:29] *}
{* ../../docs_src/path_operation_advanced_configuration/tutorial004_py310.py hl[17:27] *}

## Дополнительные ответы { #additional-responses }

Expand Down Expand Up @@ -155,13 +155,13 @@

//// tab | Pydantic v2

{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[17:22, 24] *}
{* ../../docs_src/path_operation_advanced_configuration/tutorial007_py39.py hl[15:20, 22] *}

////

//// tab | Pydantic v1

{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1.py hl[17:22, 24] *}
{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1_py39.py hl[15:20, 22] *}

////

Expand All @@ -179,13 +179,13 @@

//// tab | Pydantic v2

{* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[26:33] *}
{* ../../docs_src/path_operation_advanced_configuration/tutorial007_py39.py hl[24:31] *}

////

//// tab | Pydantic v1

{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1.py hl[26:33] *}
{* ../../docs_src/path_operation_advanced_configuration/tutorial007_pv1_py39.py hl[24:31] *}

////

Expand Down
2 changes: 1 addition & 1 deletion docs/ru/docs/advanced/response-directly.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

В таких случаях вы можете использовать `jsonable_encoder` для преобразования данных перед передачей их в ответ:

{* ../../docs_src/response_directly/tutorial001.py hl[6:7,21:22] *}
{* ../../docs_src/response_directly/tutorial001_py310.py hl[5:6,20:21] *}

/// note | Технические детали

Expand Down
8 changes: 4 additions & 4 deletions docs/ru/docs/advanced/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ $ ADMIN_EMAIL="[email protected]" APP_NAME="ChimichangApp" fastapi run main.p

Продолжая предыдущий пример, ваш файл `config.py` может выглядеть так:

{* ../../docs_src/settings/app02/config.py hl[10] *}
{* ../../docs_src/settings/app02_an_py39/config.py hl[10] *}

Обратите внимание, что теперь мы не создаем экземпляр по умолчанию `settings = Settings()`.

Expand All @@ -174,7 +174,7 @@ $ ADMIN_EMAIL="[email protected]" APP_NAME="ChimichangApp" fastapi run main.p

Далее будет очень просто предоставить другой объект настроек во время тестирования, создав переопределение зависимости для `get_settings`:

{* ../../docs_src/settings/app02/test_main.py hl[9:10,13,21] *}
{* ../../docs_src/settings/app02_an_py39/test_main.py hl[9:10,13,21] *}

В переопределении зависимости мы задаем новое значение `admin_email` при создании нового объекта `Settings`, а затем возвращаем этот новый объект.

Expand Down Expand Up @@ -217,7 +217,7 @@ APP_NAME="ChimichangApp"

//// tab | Pydantic v2

{* ../../docs_src/settings/app03_an/config.py hl[9] *}
{* ../../docs_src/settings/app03_an_py39/config.py hl[9] *}

/// tip | Совет

Expand All @@ -229,7 +229,7 @@ APP_NAME="ChimichangApp"

//// tab | Pydantic v1

{* ../../docs_src/settings/app03_an/config_pv1.py hl[9:10] *}
{* ../../docs_src/settings/app03_an_py39/config_pv1.py hl[9:10] *}

/// tip | Совет

Expand Down
14 changes: 11 additions & 3 deletions docs/ru/docs/deployment/cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,19 @@

В большинстве случаев у основных облачных провайдеров есть руководства по развертыванию FastAPI на их платформе.

## Облачные провайдеры — спонсоры { #cloud-providers-sponsors }
## FastAPI Cloud { #fastapi-cloud }

**<a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a>** создан тем же автором и командой, стоящими за **FastAPI**.

Он упрощает процесс **создания образа**, **развертывания** и **доступа** к API с минимальными усилиями.

Некоторые облачные провайдеры ✨ [**спонсируют FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} ✨ — это обеспечивает непрерывное и здоровое развитие FastAPI и его экосистемы.
Он переносит тот же **опыт разработчика** создания приложений с FastAPI на их **развертывание** в облаке. 🎉

FastAPI Cloud — основной спонсор и источник финансирования для open source проектов *FastAPI and friends*. ✨

## Облачные провайдеры — спонсоры { #cloud-providers-sponsors }

И это показывает их искреннюю приверженность FastAPI и его сообществу (вам): они не только хотят предоставить вам хороший сервис, но и стремятся гарантировать, что у вас будет хороший и стабильный фреймворк — FastAPI. 🙇
Некоторые другие облачные провайдеры ✨ [**спонсируют FastAPI**](../help-fastapi.md#sponsor-the-author){.internal-link target=_blank} ✨ тоже. 🙇

Возможно, вы захотите попробовать их сервисы и воспользоваться их руководствами:

Expand Down
65 changes: 65 additions & 0 deletions docs/ru/docs/deployment/fastapicloud.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# FastAPI Cloud { #fastapi-cloud }

Вы можете развернуть своё приложение FastAPI в <a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a> одной командой, присоединяйтесь к списку ожидания, если ещё не сделали этого. 🚀

## Вход { #login }

Убедитесь, что у вас уже есть аккаунт **FastAPI Cloud** (мы пригласили вас из списка ожидания 😉).

Затем выполните вход:

<div class="termy">

```console
$ fastapi login

You are logged in to FastAPI Cloud 🚀
```

</div>

## Деплой { #deploy }

Теперь разверните приложение одной командой:

<div class="termy">

```console
$ fastapi deploy

Deploying to FastAPI Cloud...

✅ Deployment successful!

🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev
```

</div>

Вот и всё! Теперь вы можете открыть своё приложение по этому URL. ✨

## О FastAPI Cloud { #about-fastapi-cloud }

**<a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a>** создан тем же автором и командой, что и **FastAPI**.

Он упрощает процесс **создания образа**, **развертывания** и **доступа** к API с минимальными усилиями.

Он переносит тот же **опыт разработчика**, что вы получаете при создании приложений на FastAPI, на их **развертывание** в облаке. 🎉

Он также возьмёт на себя большинство вещей, которые требуются при развертывании приложения, например:

* HTTPS
* Репликация с автоматическим масштабированием на основе запросов
* и т.д.

FastAPI Cloud — основной спонсор и источник финансирования open source‑проектов «FastAPI и друзья». ✨

## Развертывание у других облачных провайдеров { #deploy-to-other-cloud-providers }

FastAPI — проект с открытым исходным кодом и основан на стандартах. Вы можете развернуть приложения FastAPI у любого облачного провайдера на ваш выбор.

Следуйте руководствам вашего облачного провайдера, чтобы развернуть приложения FastAPI у них. 🤓

## Развертывание на собственном сервере { #deploy-your-own-server }

Позже в этом руководстве по **развертыванию** я также расскажу все детали — чтобы вы понимали, что происходит, что нужно сделать и как развернуть приложения FastAPI самостоятельно, в том числе на собственных серверах. 🤓
4 changes: 3 additions & 1 deletion docs/ru/docs/deployment/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@

## Стратегии развёртывания { #deployment-strategies }

В зависимости от вашего конкретного случая, есть несколько способов сделать это.
Есть несколько способов сделать это, в зависимости от вашего конкретного случая и используемых вами инструментов.

Вы можете **развернуть сервер** самостоятельно, используя различные инструменты. Например, можно использовать **облачный сервис**, который выполнит часть работы за вас. Также возможны и другие варианты.

Например, мы, команда, стоящая за FastAPI, создали <a href="https://fastapicloud.com" class="external-link" target="_blank">**FastAPI Cloud**</a>, чтобы сделать развёртывание приложений FastAPI в облаке как можно более простым и прямолинейным, с тем же удобством для разработчика, что и при работе с FastAPI.

В этом блоке я покажу вам некоторые из основных концепций, которые вы, вероятно, должны иметь в виду при развертывании приложения **FastAPI** (хотя большинство из них применимо к любому другому типу веб-приложений).

В последующих разделах вы узнаете больше деталей и методов, необходимых для этого. ✨
Loading
Loading