Функция ensure_sync
Функция ensure_sync применяется для оборачивания
синхронной функции в асинхронную. Первым параметром
передаётся вызываемая функция. Flask использует эту
функцию внутри приложения, чтобы обеспечить
совместимость синхронных обработчиков с асинхронными
представлениями и расширениями.
Синтаксис
from flask import Flask
app = Flask(__name__)
app.ensure_sync(func)
Пример
Давайте обернём обычную синхронную функцию и
вызовем её через ensure_sync:
from flask import Flask
import asyncio
app = Flask(__name__)
def sync_func():
return 'hello'
async def main():
async_func = app.ensure_sync(sync_func)
res = await async_func()
print(res)
asyncio.run(main())
Результат выполнения кода:
"hello"
Пример
Давайте применим ensure_sync внутри
асинхронного обработчика маршрута:
from flask import Flask
app = Flask(__name__)
def get_data():
return 'article'
@app.route('/')
async def index():
func = app.ensure_sync(get_data)
res = func()
return res
Результат выполнения кода для адреса /:
article
Смотрите также
-
класс
Markup,
который помечает строку как безопасный HTML -
функцию
escape,
которая экранирует спецсимволы HTML -
функцию
unescape,
которая выполняет обратное экранирование -
класс
JSONProvider,
который настраивает сериализацию JSON в Flask