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