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])
廣告
© . All rights reserved.