
__enter__
で前処理を行う
__enter__
メソッドは、
with
文のブロックを実行する前にコードを実行する場所を提供します。
log_request
関数の前処理を行うコードを思い出してください。
...
dbconfig = { 'host': '127.0.0.1',
'user': 'vsearch',
'password': 'vsearchpasswd',
'database': 'vsearchlogDB', }
conn = mysql.connector.connect(**dbconfig)
cursor = conn.cursor()
_SQL = """insert into log
(phrase, letters, ip, browser_string, res
ults)
...
この前処理コードは接続情報の辞書を使って
MySQL
に接続し、データベースカーソルを作成します
(データベースカーソルは、
Python
コードからデータベースへコマンドを送るために必要です)。データ
ベースとやり取りするたびに実行されるこの前処理コードの代わりに、コンテキストマネージャクラスで
この処理を行い、再利用しやすくしましょう。
__enter__
メソッドは、
self.configuration
に格納された接続情報を使って
データベースに接続してカーソルを作成します。
__enter__
メソッドは、必須の引
数
self
以外は取りませんが、カーソルを返す必要があります。次のメソッドを完 ...