Мой вопрос касается рекомендуемого подхода для обработки соединений с базой данных при использовании Flask в производственной среде или другой среде, где важна производительность. Во Flask данный объект доступен для хранения вещей, и там можно разместить открытые соединения с базой данных, чтобы приложение могло повторно использовать их в последующих запросах к базе данных во время того же запроса. Однако данный объект не сохраняется в запросах, поэтому кажется, что для каждого нового запроса требуется новое подключение к базе данных (и это приводит к снижению производительности).
Наиболее похожий вопрос, который я нашел по этому вопросу, такой: Как сохранить соединение с базой данных на веб-сервере Python , но ответы только поднимают абстрактную идею пула соединений (без привязки к тому, как может использовать его в Flask и как оно будет действовать при разных запросах) или предложить решение, которое относится только к одному конкретному типу базы данных или определенному стеку.
Так что мой вопрос касается общего подхода, который следует использовать при создании приложений, построенных на Flask, которые подключаются к любой базе данных. Кажется, что что-то, связанное с пулом соединений, идет в правильном направлении, тем более что это будет работать для традиционного приложения Python. Но мне интересно, каков рекомендуемый подход при использовании Flask из-за вышеупомянутых проблем сохранения постоянства между соединениями, а также из-за того факта, что приложения Flask в работе запускаются с серверов WSGI, что потенциально добавляет дополнительные сложности.
РЕДАКТИРОВАТЬ: На основе комментариев, рекомендующих колбу sqlalchemy. Предполагая, что flask sqlalchemy решает проблему, он также работает для Neo4J или любой другой произвольной базы данных, которую использует приложение Flask? Многие из существующих коннекторов баз данных уже изначально поддерживают пул, поэтому зачем вводить дополнительную зависимость, основной целью которой является предоставление возможностей ORM, а не управление соединениями? Кроме того, как sqlalchemy справляется с фундаментальной проблемой постоянства запросов?