Web çerçevesi olarak pybottle ve veritabanı işleyicisi olarak dataset ile basit bir REST API'sı yazdım. Veri kümesinin veritabanına nasıl bağlandığını (açtığını ve kapattığını) ve bununla ne kadar ilgilenmem gerektiğini merak ediyorum.Python veri kümesi
aşağıdaki düşünün:
db = dataset.connect('sqlite:///database.db')
table = db['table']
def some_function():
# do some manipulation (eg. insert) in 'table'
Ben (başka dosyada olduğu) web uygulamasından some_function()
diyoruz ne olur? Veri kümesi, işlevin gerçekleştirilmesinden sonra veri tabanını düzgün bir şekilde açıp kapatır mı? Ya da her fonksiyon çağrısıyla yeni bir açık bağlantım var mı?
Cevabınız için teşekkür ederiz! Ancak, yukarıdaki kod snippet'inin iyi olup olmayacağını açıkça anlamadım. Birden çok kullanıcı web uygulamasında eş zamanlı olarak "some_function()" işlevini çağırırsa ne olur? Bir veritabanı manipülasyonu diğeri bitene kadar bekler mi? Yazma işleminden sonra bağlantılar otomatik olarak kapanıyor mu? Kod snippet'imde herhangi bir şeyi değiştirmem gerekiyor mu? – wildthing
@wildthing 'some_function' kodunuzda bir bağlantı açmıyor. Modül düzeyinde (dış fonksiyon) yapılır. SQLAlchemy, bir bağlantının zaten mevcut olup olmadığını denetler, true kullanılıyorsa, geçerli bağlantı başka bir tane de kurar. Her işlem aynı bağlantıyı kullanır, elle açmak/kapatmak için tavsiye edilmez, bağlantı sadece orada kalmaya devam eder. Bağlantıların nasıl ele alınacağını açıklayan SQLAlchemy belgelerine bakın. – tuned