2013-04-11 17 views
9

Djangoで長時間プレイした後、SQLAlchemyを使用してFlaskを少し試しています。しかし、私には得られないものがあります: 私はPostgreSQLを使用する小さなFlask/SQLAlchemyアプリケーションを持っています。SQLAlchemy/Flask/PostgreSQLプール接続

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

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

私が知りたかった:

  1. が自動接続プーリングですか?私は私の__init__.pyファイルで または、Model.queryを呼び出すたびにデータベースに新しい接続を作成しますか?
  2. そうでない場合は、どうすれば設定できますか?
  3. はいの場合、デフォルトは何ですか。どのように値を変更できますか?

ご協力いただきありがとうございます。

答えて

10

フラスコSQLAlchemyのは、あなたがdocumentation for the create_engine functionのオプションとデフォルト値の一部を読むことができSQLAlchemyの中create_engine方法を使用して、SQLAlchemyのエンジンを作成します。 According to the Flask-SQLAlchemy documentationでは、プーリングに固有の設定オプションのいくつかを指定できます。これらの値はさまざまな方法で設定できます。具体的な値はFlask configurationです。あなたが設定ファイルに何かなどを追加することができますので、あなたはすでにはい、自動接続プーリングがある、だから... ...、

SQLALCHEMY_POOL_SIZE=10 

settings構成モジュールを持っています。 This is provided by SQLAlchemy by default。この回答の投稿時点で、Flask-SQLAlchemyでは、の一部をという設定ファイルで変更することができます(古いpull request to allow you to specify ANY create_engine parameterがあるようですが)。

Flask-SQLAlchemyよりもSQLAlchemyエンジンの設定をさらにサポートする必要がある場合は、Flask-SQLAlchemyラッパーを使用せずにSQLAlchemyを使用するか、Flask-SQLAlchemyを変更して(おそらくプル要求をマージする)

+0

詳細な回答ありがとうございました!私はFlask-SQLAlchemyのドキュメントでこの部分を見逃しているに違いありません! –

+1

接続プールを 'NullPool'に設定する方法はありますか? –