我编写了一个简单的REST API,其中pybottle作为Web框架,dataset作为数据库处理程序。我想知道数据集如何处理(打开和关闭)与数据库的连接以及我需要在多大程度上处理这个问题。
请考虑以下事项:
db = dataset.connect('sqlite:///database.db')
table = db['table']
def some_function():
# do some manipulation (eg. insert) in 'table'
当我从Web应用程序(在另一个文件中)调用some_function()
时会发生什么?数据集在执行函数后是否正确打开和关闭与数据库的连接?或者每个函数调用都有一个新的开放连接?
答案 0 :(得分:1)
Python中的每个SQL驱动程序都遵循Python DB API PEP0249。 据我所知,你正在使用SQLite的驱动程序,所以它应遵循相同的规则。
SQLAlchemy有一种内置的方法来建立持久的连接并避免连接丢失。您可以创建一个方法get_connection()
,该方法返回Database
个对象,如果没有活动连接,则重新建立连接。
检查connect
documentation和source code,了解图书馆如何包装与数据库的通信。