-
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'feat/oauth' of github.com:dymmond/esmerald into feat/oauth
- Loading branch information
Showing
39 changed files
with
381 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# О проекте | ||
|
||
Esmerald появился в 2022 году из идеи двух разработчиков, стремящихся создать уникальное и легкое в | ||
установке и использовании решение. | ||
|
||
Никогда не задумывалось создать что-то, чтобы "соперничать" или "украсть рынок" у кого-либо. | ||
Напротив, эти два разработчика разработали Esmerald как дополнение к текущему экосистеме Python. | ||
|
||
## Вдохновение | ||
|
||
В самом начале документации упоминаются замечательные фреймворки, которые вдохновили Esmerald, | ||
но мы уверенны, что тот, кто заложил основу для всей этой прекрасной техники, был бесспорно Django. | ||
|
||
## Что ждёт нас в будущем | ||
|
||
С уверенностью можно говорить, что с ростом Esmerald и при помощи сообщества перед нами яркое | ||
будущее, и новые функции могут и будут добавляться в соответствии с потребностями экосистемы. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# Background Tasks | ||
|
||
Как и в Lilya, в Esmerald вы можете определять фоновые задачи для выполнения **после** возвращения ответа. | ||
|
||
Это может быть полезно для тех операций, которые должны происходить после запроса, не блокируя клиента (клиенту не нужно | ||
ждать завершения) для получения того же ответа. | ||
|
||
Примеры: | ||
|
||
* Регистрация пользователя в системе и отправка электронного письма с подтверждением регистрации. | ||
* Обработка файла, которая может занять "некоторое время". Просто верните HTTP 202 и обработайте файл в фоновом режиме. | ||
|
||
## Как использовать | ||
|
||
Как уже упоминалось, Esmerald использует фоновые задачи из Lilya, и вы можете передавать их различными способами: | ||
|
||
* Через [обработчики](#через-handlers) | ||
* Через [ответ](#через-response) | ||
|
||
## Через handlers | ||
|
||
Это означает передачу фоновой задачи через get, put, post, delete или route. | ||
|
||
Существует также два способа передачи через обработчики. | ||
|
||
### Использование одного экземпляра | ||
|
||
Это, вероятно, наиболее распространенный случай, когда вам нужно выполнить одну фоновую задачу при получении запроса, | ||
например, отправка уведомления по электронной почте. | ||
|
||
```python hl_lines="18" | ||
{!> ../../../docs_src/background_tasks/via_handlers.py !} | ||
``` | ||
|
||
Этот пример довольно простой, но он иллюстрирует, как вы могли бы использовать обработчики | ||
для передачи фоновой задачи. | ||
|
||
### Использование списка | ||
|
||
Конечно, есть также ситуации, когда нужно выполнить более одной фоновой задачи. | ||
|
||
```python hl_lines="27-32" | ||
{!> ../../../docs_src/background_tasks/via_list.py !} | ||
``` | ||
|
||
## Через response | ||
|
||
Добавление задач через response, вероятно, будет тем способом, который вы будете использовать чаще всего, | ||
иногда вам понадобится какая-то конкретная информация, которая доступна только внутри вашего представления. | ||
|
||
Это достигается аналогичным образом, как и в [handlers](#через-handlers). | ||
|
||
### Использование одного экземпляра | ||
|
||
Таким же образом, как вы создавали одну фоновую задачу для handlers, в response это работает аналогично. | ||
|
||
```python hl_lines="22-26" | ||
{!> ../../../docs_src/background_tasks/response/via_handlers.py !} | ||
``` | ||
|
||
### Использование списка | ||
|
||
То же самое происходит при выполнении более одной фоновой задачи и когда требуется более одной операции. | ||
|
||
```python hl_lines="30-39" | ||
{!> ../../../docs_src/background_tasks/response/via_list.py !} | ||
``` | ||
|
||
### Использование add_task | ||
|
||
Другой способ добавления нескольких задач - использование функции `add_task`, предоставляемой объектом `BackgroundTasks`. | ||
|
||
```python hl_lines="28-32" | ||
{!> ../../../docs_src/background_tasks/response/add_tasks.py !} | ||
``` | ||
|
||
Функция `.add_task()` принимает в качестве аргументов: | ||
|
||
* Функцию задачи, которая должна быть выполнена в фоновом режиме (send_email_notification и write_in_file). | ||
* Любую последовательность аргументов (*args), которые должны быть переданы функции задачи (email, message). | ||
* Любые именованные аргументы (**kwargs), которые должны быть переданы функции задачи. | ||
|
||
## Техническая информация | ||
|
||
Классы `BackgroundTask` и `BackgroundTasks` приходят напрямую из `lilya.background`. Это означает, что вы можете импортировать | ||
их напрямую из Lilya, если хотите. | ||
|
||
Esmerald импортирует эти классы и добавляет некоторую дополнительную информацию о типах, но не влияет на общую функциональность ядра. | ||
|
||
Вы можете использовать функции `def` или `async def` при объявлении этих функций для передачи в `BackgroundTask`, | ||
Esmerald будет знать, как обработать их. | ||
|
||
Для получения дополнительной информации об этих объектах вы можете ознакомиться с [официальной документацией Lilya по фоновым задачам](https://www.lilya.dev/tasks/). | ||
|
||
## Справочник API | ||
|
||
Узнайте больше о `BackgroundTask`, ознакомившись со [Справочником API](./references/background.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
from pathlib import Path | ||
|
||
from esmerald import Esmerald, StaticFilesConfig | ||
|
||
static_files_config = StaticFilesConfig( | ||
path="/static", packages=["mypackage"], directory=Path("static") | ||
) | ||
|
||
static_files_node_modules_config = StaticFilesConfig( | ||
path="/static/node_modules", directory=Path("node_modules") | ||
) | ||
|
||
app = Esmerald(static_files_config=[static_files_node_modules_config, static_files_config]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
__version__ = "3.5.0" | ||
__version__ = "3.5.1" | ||
|
||
|
||
from lilya import status | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.