Peewee - 连接管理



默认情况下创建数据库对象时,autoconnect 参数设置为 True。相反,若要以编程方式管理数据库连接,则最初将其设置为 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() 之外,还可以将数据库对象用作 上下文管理器

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])
广告