Jak zmniejszyć liczbę połączeń za pomocą SQLAlchemy + postgreSQL?

Rozwijam sięheroku używając ichPostgres dodatek z planem Dev, który ma limit połączenia20. jestem nowy wpython i może to być trywialne, ale trudno jest zoptymalizować połączenie z bazą danych bez powodowaniaOperationalError: (OperationalError) FATAL: too many connections for role.

Obecnie mamdatabeam.py:

import os
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from settings import databaseSettings

class Db(object):
    def __init__(self):
        self.app = Flask(__name__)
        self.app.config.from_object(__name__)
        self.app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', databaseSettings())
        self.db = SQLAlchemy(self.app)

db = Db()

A kiedy tworzę kontroler strony, robię to:

import databeam

db = databeam.db
locations = databeam.locations

templateVars = db.db.session.query(locations).filter(locations.parent == 0).order_by(locations.order.asc()).all()

To daje to, czego chcę, ale powoli i czasami powoduje błąd wymieniony powyżej. Odkąd pochodzę zphp background Mam pewien sposób myślenia o tym, jak radzić sobie z połączeniami DB (np. jak w powyższym przykładzie), ale obawiam się, że nie pasuje on dopython.

Jaki jest właściwy sposób wyodrębniania połączenia db w jednym miejscu, a następnie używania tego samego połączenia we wszystkich importach?

questionAnswers(1)

yourAnswerToTheQuestion