Обновить
10
0

some kind of a crab.

Отправить сообщение

Всё таки Python не для мобилок. А тот же kivy собирать в APK и тестировать локально — та ещё боль.

Попробуйте это:


pip install databases[mysql]

А вообще, в документации есть часть и про работу с БД.

Более подробные бенчмарки тык.
По поводу обсчёта матриц — если это нужно сделать в роуте который ничего асинхронно не делает, то можно маркнуть его как обычный 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) из коробки.

github.com/tiangolo/fastapi
Ну, а ещё хочется освободить место на серверах))
Ну, так скажем для того же Flask или Pyramid, может и не больше, но точно не мало.
APIStar, кстати, уже немного не живой. Вместо него можно использовать FastAPI, который по моему мнению выглядит даже лучше, чем APIStar.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность