Соединение пула SQLAlchemy / Flask / PostgreSQL

после того, как я долго играл с Django, я пытаюсь немного колбы с SQLAlchemy, и я должен сказать, что мне это очень нравится. Однако есть кое-что, чего я не понимаю.: У меня есть небольшое приложение Flask / SQLAlchemy, которое использует PostgreSQL. В моем Я:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('settings')
db = SQLAlchemy(app)

Я хотел бы знать:

  1. есть ли автоматический пул соединений ? Или делает каждый вызов модели.запрос... создать новое соединение с базой данных?
  2. если нет, то как я могу настроить?
  3. если да, то каковы по умолчанию, как я могу изменить значения?

большое спасибо за помощь !

1 ответов


фляга-с SQLAlchemy создает двигатель с SQLAlchemy с помощью create_engine метод в SQLAlchemy, который вы можете прочитать о некоторых параметрах и значениях по умолчанию в документация для функции create_engine. согласно документации по колбе-SQLAlchemy, вы можете указать некоторые параметры конфигурации, специфичные для объединения. Вы можете установить эти значения различными способами, о которых вы можете прочитать в конфигурация колбы. У вас уже есть settings модуль конфигурации, так что вы можете добавить в свой конфиг файл...

SQLALCHEMY_POOL_SIZE=10

Итак, да, есть автоматический пул соединений. это предусмотрено SQLAlchemy по умолчанию. На момент публикации этого ответа Flask-SQLAlchemy позволяет изменять некоторые из этих параметров с помощью файла конфигурации (хотя, похоже, есть старый запрос pull, чтобы вы могли указать любой параметр create_engine).

Если вы требуется больше поддержки для настройки движка SQLAlchemy, чем предоставляет Flask-SQLAlchemy, вы можете либо использовать SQLAlchemy без оболочки Flask-SQLAlchemy, либо изменить Flask-SQLAlchemy (возможно, слияние запроса вытягивания), чтобы разрешить это.