複数のデータベース (400 以上) に接続する django アプリケーションがあります。データベース資格情報は頻繁に変更されます。静的セットアップが必要なため、django データベース サポートを使用できません。
そのため、カーソルを返すページをロードするときに動的データベース接続を作成します。
次の質問があります。
- これはカーソルを解放する適切な方法ですか (デストラクタ__ del _を使用 )
- close() メソッドを直接使用する場合、デストラクタは安全ですか?
- 接続オブジェクトに対して同様のことを行う必要がありますか、それともカーソルを閉じるだけで十分ですか?
これに対して提案された標準的な解決策はありますか?
class MyDatabaseManager(object): def __init__(self, database_name): self.cursor = None #for safety in case next command return an exception self.cursor = some_object.get_cursor(database_name) def close(self): self.cursor.close() self.cursor = None def __del__(self): if not (self.cursor is None): self.close() def execute_query(self, sql_query, parameter_list): return self.cursor.execute(sql_query, parameter_list)