diff --git a/docs/ru/docs/_llm-test.md b/docs/ru/docs/_llm-test.md index d33e803a0..1b2ee8f18 100644 --- a/docs/ru/docs/_llm-test.md +++ b/docs/ru/docs/_llm-test.md @@ -258,7 +258,7 @@ works(foo="bar") # Это работает 🎉 * `bar` как `str` * `baz` как `list` -* Учебник — Руководство пользователя +* Учебник - Руководство пользователя * Расширенное руководство пользователя * Документация по SQLModel * Документация API @@ -461,7 +461,7 @@ works(foo="bar") # Это работает 🎉 * библиотека * lifespan * блокировка -* middleware (Промежуточный слой) +* middleware (промежуточный слой) * мобильное приложение * модуль * монтирование diff --git a/docs/ru/docs/alternatives.md b/docs/ru/docs/alternatives.md index 13f099da8..e1b8e277d 100644 --- a/docs/ru/docs/alternatives.md +++ b/docs/ru/docs/alternatives.md @@ -20,7 +20,7 @@ Он относительно тесно связан с реляционными базами данных (например, MySQL или PostgreSQL), поэтому использовать NoSQL-базу данных (например, Couchbase, MongoDB, Cassandra и т. п.) в качестве основного хранилища не очень просто. -Он был создан для генерации HTML на бэкенде, а не для создания API, используемых современным фронтендом (например, React, Vue.js и Angular) или другими системами (например, устройствами IoT), которые с ним общаются. +Он был создан для генерации HTML на бэкенде, а не для создания API, используемых современным фронтендом (например, React, Vue.js и Angular) или другими системами (например, устройствами IoT), которые с ним общаются. ### [Django REST Framework](https://www.django-rest-framework.org/) { #django-rest-framework } @@ -88,7 +88,7 @@ Requests имеет очень простой и понятный дизайн, response = requests.get("http://example.com/some/url") ``` -Соответствующая в FastAPI API-операция пути могла бы выглядеть так: +Соответствующая в FastAPI API-*операция пути* могла бы выглядеть так: ```Python hl_lines="1" @app.get("/some/url") diff --git a/docs/ru/docs/editor-support.md b/docs/ru/docs/editor-support.md index 0543e7162..cd02c0f40 100644 --- a/docs/ru/docs/editor-support.md +++ b/docs/ru/docs/editor-support.md @@ -20,4 +20,4 @@ - **Развернуть в FastAPI Cloud** — развертывание вашего приложения в один клик в [FastAPI Cloud](https://fastapicloud.com/). - **Поток логов приложения** — потоковая передача логов в реальном времени из вашего приложения, развернутого в FastAPI Cloud, с фильтрацией по уровню и текстовым поиском. -Если вы хотите поверхностно ознакомиться с возможностями расширения, откройте палитру команд (Ctrl + Shift + P или на macOS: Cmd + Shift + P), выберите «Welcome: Open walkthrough...», а затем «Get started with FastAPI». +Если вы хотите ознакомиться с возможностями расширения, вы можете посмотреть walkthrough расширения, открыв палитру команд (Ctrl + Shift + P или на macOS: Cmd + Shift + P) и выбрав «Welcome: Open walkthrough...», а затем walkthrough «Get started with FastAPI». diff --git a/docs/ru/docs/environment-variables.md b/docs/ru/docs/environment-variables.md index 8db16d16c..3cd0bc78b 100644 --- a/docs/ru/docs/environment-variables.md +++ b/docs/ru/docs/environment-variables.md @@ -50,9 +50,9 @@ Hello Wade Wilson //// -## Чтение переменных окружения в python { #read-env-vars-in-python } +## Чтение переменных окружения в Python { #read-env-vars-in-python } -Так же существует возможность создания переменных окружения **вне** Python, в терминале (или любым другим способом), а затем **чтения их в Python**. +Также существует возможность создания переменных окружения **вне** Python, в терминале (или любым другим способом), а затем **чтения их в Python**. Например, у вас есть файл `main.py`: @@ -67,7 +67,7 @@ print(f"Hello {name} from Python") Второй аргумент [`os.getenv()`](https://docs.python.org/3.8/library/os.html#os.getenv) - это возвращаемое по умолчанию значение. -Если значение не указано, то по умолчанию оно равно `None`. В данном случае мы указываем `«World»` в качестве значения по умолчанию. +Если значение не указано, то по умолчанию оно равно `None`. В данном случае мы указываем `"World"` в качестве значения по умолчанию. /// @@ -157,13 +157,13 @@ Hello World from Python /// -## Типизация и Валидация { #types-and-validation } +## Типы и валидация { #types-and-validation } Эти переменные окружения могут работать только с **текстовыми строками**, поскольку они являются внешними по отношению к Python и должны быть совместимы с другими программами и остальной системой (и даже с различными операционными системами, такими как Linux, Windows, macOS). Это означает, что **любое значение**, считанное в Python из переменной окружения, **будет `str`**, и любое преобразование к другому типу или любая валидация должны быть выполнены в коде. -Подробнее об использовании переменных окружения для работы с **настройками приложения** вы узнаете в [Расширенное руководство пользователя - Настройки и переменные среды](./advanced/settings.md). +Подробнее об использовании переменных окружения для работы с **настройками приложения** вы узнаете в [Расширенном руководстве пользователя - Настройки и переменные окружения](./advanced/settings.md). ## Переменная окружения `PATH` { #path-environment-variable } @@ -285,14 +285,14 @@ $ C:\opt\custompython\bin\python //// -Эта информация будет полезна при изучении [Виртуальных окружений](virtual-environments.md). +Эта информация будет полезна при изучении [виртуальных окружений](virtual-environments.md). ## Вывод { #conclusion } Благодаря этому вы должны иметь базовое представление о том, что такое **переменные окружения** и как использовать их в Python. -Подробнее о них вы также можете прочитать в [статье о переменных окружения на википедии](https://en.wikipedia.org/wiki/Environment_variable). +Подробнее о них вы также можете прочитать в [статье о переменных окружения на Википедии](https://en.wikipedia.org/wiki/Environment_variable). Во многих случаях не всегда очевидно, как переменные окружения могут быть полезны и применимы. Но они постоянно появляются в различных сценариях разработки, поэтому знать о них полезно. -Например, эта информация понадобится вам в следующем разделе, посвященном [Виртуальным окружениям](virtual-environments.md). +Например, эта информация понадобится вам в следующем разделе, посвященном [виртуальным окружениям](virtual-environments.md). diff --git a/docs/ru/docs/features.md b/docs/ru/docs/features.md index 9755c3fe5..25bbe850c 100644 --- a/docs/ru/docs/features.md +++ b/docs/ru/docs/features.md @@ -17,7 +17,7 @@ * [**Swagger UI**](https://github.com/swagger-api/swagger-ui), с интерактивным исследованием, вызовом и тестированием вашего API прямо из браузера. - + * Альтернативная документация API в [**ReDoc**](https://github.com/Rebilly/ReDoc). @@ -36,7 +36,7 @@ from datetime import date from pydantic import BaseModel -# Объявляем параметр как `str` +# Объявляем переменную как `str` # и получаем поддержку редактора кода внутри функции def main(user_id: str): return user_id @@ -71,9 +71,9 @@ my_second_user: User = User(**second_user_data) /// -### Поддержка редакторов { #editor-support } +### Поддержка редакторов кода { #editor-support } -Весь фреймворк был продуман так, чтобы быть простым и интуитивно понятным в использовании, все решения были проверены на множестве редакторов еще до начала разработки, чтобы обеспечить наилучшие условия при написании кода. +Весь фреймворк был продуман так, чтобы быть простым и интуитивно понятным в использовании, все решения были проверены на множестве редакторов кода еще до начала разработки, чтобы обеспечить наилучшие условия при написании кода. В опросах Python‑разработчиков видно, [что одной из самых часто используемых функций является «автозавершение»](https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features). @@ -81,15 +81,15 @@ my_second_user: User = User(**second_user_data) Вам редко нужно будет возвращаться к документации. -Вот как ваш редактор может вам помочь: +Вот как ваш редактор кода может вам помочь: * в [Visual Studio Code](https://code.visualstudio.com/): - + * в [PyCharm](https://www.jetbrains.com/pycharm/): - + Вы будете получать автозавершение кода даже там, где вы считали это невозможным раньше. Как пример, ключ `price` внутри тела JSON (который может быть вложенным), приходящего в запросе. @@ -151,11 +151,11 @@ FastAPI включает в себя чрезвычайно простую в и Любая интеграция разработана настолько простой в использовании (с зависимостями), что вы можете создать «плагин» для своего приложения в пару строк кода, используя ту же структуру и синтаксис, что и для ваших *операций пути*. -### Проверен { #tested } +### Протестирован { #tested } -* 100% покрытие тестами. +* 100% покрытие тестами. * 100% аннотирование типов в кодовой базе. -* Используется в продакшн‑приложениях. +* Используется в приложениях в продакшн. ## Возможности Starlette { #starlette-features } @@ -190,7 +190,7 @@ FastAPI включает в себя чрезвычайно простую в и * **Никакой нервотрёпки**: * Не нужно изучать новые схемы в микроязыках. * Если вы знаете типы в Python, вы знаете, как использовать Pydantic. -* Прекрасно сочетается с вашим **IDE/линтер/мозгом**: +* Прекрасно сочетается с вашим **IDE/линтер/мозгом**: * Потому что структуры данных pydantic — это всего лишь экземпляры классов, определённых вами; автозавершение, проверка кода, mypy и ваша интуиция — всё будет работать с вашими валидированными данными. * Валидация **сложных структур**: * Использование иерархических моделей Pydantic; `List`, `Dict` и т.п. из модуля `typing`. diff --git a/docs/ru/docs/index.md b/docs/ru/docs/index.md index 1b6f3d40a..3d1276821 100644 --- a/docs/ru/docs/index.md +++ b/docs/ru/docs/index.md @@ -57,7 +57,7 @@ FastAPI — это современный, быстрый (высокопрои -### Ключевой-спонсор { #keystone-sponsor } +### Ключевой спонсор { #keystone-sponsor }
+
## **Typer**, FastAPI для CLI { #typer-the-fastapi-of-clis }
@@ -364,11 +364,11 @@ def update_item(item_id: int, item: Item):
* Нажмите кнопку «Try it out», это позволит вам заполнить параметры и напрямую взаимодействовать с API:
-
+
* Затем нажмите кнопку «Execute», интерфейс свяжется с вашим API, отправит параметры, получит результаты и отобразит их на экране:
-
+
### Обновление альтернативной документации API { #alternative-api-docs-upgrade }
@@ -471,7 +471,7 @@ item: Item
...и посмотрите, как ваш редактор кода будет автоматически дополнять атрибуты и знать их типы:
-
+
Более полный пример с дополнительными возможностями см. в Учебник - Руководство пользователя.
@@ -524,7 +524,7 @@ FastAPI Cloud — основной спонсор и источник финан
#### Развертывание у других облачных провайдеров { #deploy-to-other-cloud-providers }
-FastAPI — это open source и стандартизированный фреймворк. Вы можете развернуть приложения FastAPI у любого облачного провайдера на ваш выбор.
+FastAPI — это проект с открытым исходным кодом, основанный на стандартах. Вы можете развернуть приложения FastAPI у любого облачного провайдера на ваш выбор.
Следуйте руководствам вашего облачного провайдера по развертыванию приложений FastAPI. 🤓
@@ -542,17 +542,17 @@ FastAPI зависит от Pydantic и Starlette.
Когда вы устанавливаете FastAPI с помощью `pip install "fastapi[standard]"`, он идёт с группой опциональных зависимостей `standard`:
-Используется Pydantic:
+Используется в Pydantic:
-* [`email-validator`](https://github.com/JoshData/python-email-validator) — для проверки адресов электронной почты.
+* [`email-validator`](https://github.com/JoshData/python-email-validator) — для валидации адресов электронной почты.
-Используется Starlette:
+Используется в Starlette:
* [`httpx`](https://www.python-httpx.org) — обязателен, если вы хотите использовать `TestClient`.
* [`jinja2`](https://jinja.palletsprojects.com) — обязателен, если вы хотите использовать конфигурацию шаблонов по умолчанию.
* [`python-multipart`](https://github.com/Kludex/python-multipart) - обязателен, если вы хотите поддерживать «парсинг» форм через `request.form()`.
-Используется FastAPI:
+Используется в FastAPI:
* [`uvicorn`](https://www.uvicorn.dev) — сервер, который загружает и «отдаёт» ваше приложение. Включает `uvicorn[standard]`, содержащий некоторые зависимости (например, `uvloop`), нужные для высокой производительности.
* `fastapi-cli[standard]` — чтобы предоставить команду `fastapi`.
diff --git a/docs/ru/docs/project-generation.md b/docs/ru/docs/project-generation.md
index 7a46b210d..abcc78edb 100644
--- a/docs/ru/docs/project-generation.md
+++ b/docs/ru/docs/project-generation.md
@@ -20,9 +20,9 @@
- 🦇 Поддержка тёмной темы.
- 🐋 [Docker Compose](https://www.docker.com) для разработки и продакшн.
- 🔒 Безопасное хэширование паролей по умолчанию.
-- 🔑 Аутентификация по JWT‑токенам.
+- 🔑 Аутентификация JWT (JSON Web Token).
- 📫 Восстановление пароля по электронной почте.
- ✅ Тесты с [Pytest](https://pytest.org).
- 📞 [Traefik](https://traefik.io) в роли обратного прокси / балансировщика нагрузки.
- 🚢 Инструкции по развёртыванию с использованием Docker Compose, включая настройку фронтенд‑прокси Traefik для автоматического получения сертификатов HTTPS.
-- 🏭 CI (continuous integration) и CD (continuous deployment) на основе GitHub Actions.
+- 🏭 CI (непрерывная интеграция) и CD (непрерывное развертывание) на основе GitHub Actions.
diff --git a/docs/ru/docs/python-types.md b/docs/ru/docs/python-types.md
index 4afdad935..4791899b1 100644
--- a/docs/ru/docs/python-types.md
+++ b/docs/ru/docs/python-types.md
@@ -1,20 +1,20 @@
# Введение в типы Python { #python-types-intro }
-Python поддерживает необязательные «подсказки типов» (их также называют «аннотациями типов»).
+Python поддерживает необязательные «аннотации типов» (также называемые «подсказками типов»).
-Эти **«подсказки типов»** или аннотации — это специальный синтаксис, позволяющий объявлять тип переменной.
+Эти **«аннотации типов»**, или просто аннотации, — это специальный синтаксис, позволяющий объявлять тип переменной.
Объявляя типы для ваших переменных, редакторы кода и инструменты смогут лучше вас поддерживать.
-Это всего лишь **краткое руководство / напоминание** о подсказках типов в Python. Оно охватывает только минимум, необходимый для их использования с **FastAPI**... что на самом деле очень мало.
+Это всего лишь **краткое руководство / напоминание** об аннотациях типов в Python. Оно охватывает только минимум, необходимый для их использования с **FastAPI**... что на самом деле очень мало.
-**FastAPI** целиком основан на этих подсказках типов — они дают ему множество преимуществ и выгод.
+**FastAPI** целиком основан на этих аннотациях типов — они дают ему множество преимуществ и выгод.
Но даже если вы никогда не используете **FastAPI**, вам будет полезно немного узнать о них.
/// note | Примечание
-Если вы являетесь экспертом в Python и уже знаете всё о подсказках типов, переходите к следующей главе.
+Если вы являетесь экспертом в Python и уже знаете всё об аннотациях типов, переходите к следующей главе.
///
@@ -76,7 +76,7 @@ John Doe
Вот и всё.
-Это и есть «подсказки типов»:
+Это и есть «аннотации типов»:
{* ../../docs_src/python_types/tutorial002_py310.py hl[1] *}
@@ -90,9 +90,9 @@ John Doe
Здесь мы используем двоеточия (`:`), а не знак равенства (`=`).
-И добавление подсказок типов обычно не меняет поведение программы по сравнению с вариантом без них.
+И добавление аннотаций типов обычно не меняет поведение программы по сравнению с вариантом без них.
-Но теперь представьте, что вы снова посередине написания этой функции, только уже с подсказками типов.
+Но теперь представьте, что вы снова посередине написания этой функции, только уже с аннотациями типов.
В тот же момент вы пробуете вызвать автозавершение с помощью `Ctrl+Space` — и видите:
@@ -104,7 +104,7 @@ John Doe
## Больше мотивации { #more-motivation }
-Посмотрите на эту функцию — у неё уже есть подсказки типов:
+Посмотрите на эту функцию — у неё уже есть аннотации типов:
{* ../../docs_src/python_types/tutorial003_py310.py hl[1] *}
@@ -118,7 +118,7 @@ John Doe
## Объявление типов { #declaring-types }
-Вы только что увидели основное место, где объявляют подсказки типов — параметры функции.
+Вы только что увидели основное место, где объявляют аннотации типов — параметры функции.
Это также основное место, где вы будете использовать их с **FastAPI**.
@@ -293,9 +293,9 @@ def some_function(data: Any):
Вы увидите намного больше всего этого на практике в [Учебник - Руководство пользователя](tutorial/index.md).
-## Подсказки типов с аннотациями метаданных { #type-hints-with-metadata-annotations }
+## Аннотации типов с аннотациями метаданных { #type-hints-with-metadata-annotations }
-В Python также есть возможность добавлять **дополнительные метаданные** к подсказкам типов с помощью `Annotated`.
+В Python также есть возможность добавлять **дополнительные метаданные** к аннотациям типов с помощью `Annotated`.
Вы можете импортировать `Annotated` из `typing`.
@@ -321,16 +321,16 @@ def some_function(data: Any):
## Аннотации типов в **FastAPI** { #type-hints-in-fastapi }
-**FastAPI** использует эти подсказки типов для выполнения нескольких задач.
+**FastAPI** использует эти аннотации типов для выполнения нескольких задач.
-С **FastAPI** вы объявляете параметры с подсказками типов и получаете:
+С **FastAPI** вы объявляете параметры с аннотациями типов и получаете:
* **Поддержку редактора кода**.
* **Проверки типов**.
...и **FastAPI** использует эти же объявления для:
-* **Определения требований**: из path-параметров пути запроса, query-параметров, HTTP-заголовков, тел запросов, зависимостей и т.д.
+* **Определения требований**: из path-параметров HTTP-запроса, query-параметров, HTTP-заголовков, тел запросов, зависимостей и т.д.
* **Преобразования данных**: из HTTP-запроса к требуемому типу.
* **Валидации данных**: приходящих с каждого HTTP-запроса:
* Генерации **автоматических ошибок**, возвращаемых клиенту, когда данные некорректны.
diff --git a/docs/ru/docs/virtual-environments.md b/docs/ru/docs/virtual-environments.md
index 119f3645e..b7c750842 100644
--- a/docs/ru/docs/virtual-environments.md
+++ b/docs/ru/docs/virtual-environments.md
@@ -811,7 +811,7 @@ $ cd ~/code/prisoner-of-azkaban
$ python main.py
-// Error importing sirius, it's not installed 😱
+// Ошибка при импорте sirius, он не установлен 😱
Traceback (most recent call last):
File "main.py", line 1, in