Более подробные бенчмарки тык.
По поводу обсчёта матриц — если это нужно сделать в роуте который ничего асинхронно не делает, то можно маркнуть его как обычный def, а не async def, тогда FastAPI запустит его в тредпуле. А если всё таки хочется и сделать запрос с помощью aiohttp и посчитать что-то, то можно использовать такой код (WARNING: не тестировал, но уверен что работает):
from starlette.concurrency import run_in_threadpool
@app.get(...)
async def some(..):
await do_async_request()
result = await run_in_threadpool(compute_some(123))
Изначально ASGI (да и вся идея асинхронной модели) задумывался как однопроцессный сервер, следственно таких проблем быть не должно :) Но в продакшн можно запускать с помощью gunicorn+uvicorn-воркеры и тогда да, такая проблема появится)
Нет, ну точнее не совсем. FastAPI берёт некоторые идеи из DRF (ref), но предлагает другой подход — он более легковесен, и не вынуждает использовать какую-либо определенную структуру для проекта.
Для разработки API на основе OpenAPI-schema также советую использовать асинхронную альтернативу — FastAPI. Помимо всего прочего, FastAPI предоставляет удобную интерактивную документацию (Swagger, ReDoc) из коробки.
Всё таки Python не для мобилок. А тот же kivy собирать в APK и тестировать локально — та ещё боль.
Попробуйте это:
А вообще, в документации есть часть и про работу с БД.
Более подробные бенчмарки тык.
По поводу обсчёта матриц — если это нужно сделать в роуте который ничего асинхронно не делает, то можно маркнуть его как обычный
def, а неasync def, тогда FastAPI запустит его в тредпуле. А если всё таки хочется и сделать запрос с помощью aiohttp и посчитать что-то, то можно использовать такой код (WARNING: не тестировал, но уверен что работает):github.com/tiangolo/fastapi