2013-04-11 11 views
9

Django के साथ लंबे समय तक खेलने के बाद, मैं स्क्लाक्लेमी के साथ फ्लास्क का थोड़ा सा प्रयास कर रहा हूं, और मुझे कहना होगा कि मुझे यह पसंद है। हालांकि ऐसा कुछ है जो मुझे नहीं मिलता है: मेरे पास एक छोटा सा फ्लास्क/स्क्लाक्लेमी ऐप है जो PostgreSQL का उपयोग करता है। मेरी __init__.py फ़ाइल में मेरे पास है:SQLAlchemy/फ्लास्क/PostgreSQL पूल कनेक्शन

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

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

मैं जानना चाहता था:

  1. वहाँ स्वचालित कनेक्शन पूलिंग है? या Model.query के लिए हर कॉल करता है ... डेटाबेस के लिए एक नया कनेक्शन बनाते हैं?
  2. यदि नहीं, तो मैं इसे कैसे कॉन्फ़िगर कर सकता हूं?
  3. यदि हां, तो डिफ़ॉल्ट क्या हैं, मैं मूल्यों को कैसे संशोधित कर सकता हूं?

आपकी मदद के लिए बहुत बहुत धन्यवाद!

उत्तर

10

फ्लास्क-स्क्लाक्लेमी SQLAlchemy में create_engine विधि का उपयोग कर एक SQLAlchemy इंजन बनाता है, जिसे आप documentation for the create_engine function में कुछ विकल्पों और डिफ़ॉल्ट के बारे में पढ़ सकते हैं। According to the Flask-SQLAlchemy documentation, आप पूलिंग के लिए विशिष्ट कॉन्फ़िगरेशन विकल्पों में से कुछ निर्दिष्ट कर सकते हैं। आप उन मानों को विभिन्न तरीकों से सेट कर सकते हैं, जिन्हें आप Flask configuration में पढ़ सकते हैं। आप पहले से ही एक settings विन्यास मॉड्यूल है, तो आप अपने कॉन्फ़िग फ़ाइल कुछ की तरह करने के लिए जोड़ सकते हैं ...

SQLALCHEMY_POOL_SIZE=10 

तो, हाँ, वहाँ स्वचालित कनेक्शन पूलिंग है। This is provided by SQLAlchemy by default। इस उत्तर के पोस्टिंग के अनुसार, फ्लास्क-स्क्लाक्लेमी आपको कॉन्फ़िगरेशन फ़ाइल का उपयोग करके इन विकल्पों में कुछ संशोधित करने की अनुमति देता है (हालांकि ऐसा लगता है कि पुराना pull request to allow you to specify ANY create_engine parameter है)।

आप SQLAlchemy इंजन की तुलना में कुप्पी के SQLAlchemy प्रदान करता है विन्यस्त करने के लिए और अधिक समर्थन की जरूरत है, तो आप कुप्पी के SQLAlchemy आवरण के बिना SQLAlchemy का उपयोग करें, या कुप्पी के SQLAlchemy संशोधित (शायद पुल अनुरोध विलय) इस अनुमति देने के लिए या तो कर सकते हैं।

+0

विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद! मुझे फ्लास्क-स्क्लाक्लेमी दस्तावेज में इस भाग को याद करना होगा! –

+1

कनेक्शन पूल को 'NullPool' पर सेट करने के तरीके पर कोई विचार? –

संबंधित मुद्दे