Peewee – 连接管理
创建数据库对象时,默认将 自动连接 参数设置为 “真”。相反,为了以编程方式管理数据库连接,它最初被设置为False。
db=SqliteDatabase("mydatabase", autoconnect=False)
数据库类有 connect() 方法,可以与服务器上的数据库建立连接。
db.connect()
我们总是建议在执行的操作结束后关闭连接。
db.close()
如果你试图打开一个已经打开的连接,Peewee会引发 OperationError。
>>> db.connect()
True
>>> db.connect()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\peewee\lib\site-packages\peewee.py", line 3031, in connect
raise OperationalError('Connection already opened.')
peewee.OperationalError: Connection already opened.
为了避免这个错误,请使用 reuse_if_open=True 作为connect()方法的参数。
>>> db.connect(reuse_if_open=True)
False
在已经关闭的连接上调用 close() 不会导致错误。然而,你可以用 is_closed() 方法检查连接是否已经关闭。
>>> if db.is_closed()==True:
db.connect()
True
>>>
而不是在最后明确地调用db.close(),也可以使用数据库对象作为 context_manager。
from peewee import *
db = SqliteDatabase('mydatabase.db', autoconnect=False)
class User (Model):
user_id=TextField(primary_key=True)
name=TextField()
age=IntegerField()
class Meta:
database=db
db_table='User'
with db:
db.connect()
db.create_tables([User])