Peewee 连接管理


数据库对象是用 自动连接 参数默认设置为 True。相反,为了以编程方式管理数据库连接,它最初设置为 False。

db=SqliteDatabase("mydatabase", autoconnect=False)

数据库类有 连接() 与服务器上存在的数据库建立连接的方法。

db.connect()

始终建议在执行操作结束时关闭连接。

db.close()

如果你尝试打开一个已经打开的连接,Peewee 会引发 操作错误 .

>>> 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.

为避免此错误,请使用 重用_if_open=真 作为 connect() 方法的参数。

>>> db.connect(reuse_if_open=True)
False

Calling close() 在已经关闭的连接上不会导致错误。但是,你可以检查连接是否已经关闭 已经关了() method.

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