IoT+WEBのためのホームサーバ計画の実装編20。PythonでDBアクセス。の修正
2020-03-22 2020-04-06
あ、ゴメンナサイ。しりませんでした^^;
そうなんですよ。ちょっとまえに、ちゃちゃっと、DBをアクセスするクラスを書いたりしたわけですが、なんか美しくなかったですよねー。
fetchした結果のレコードが、添え字でとってくるってのが、どうにも美しくなかったですよね。
なんか、その昔、ODBC経由でのDBアクセスをWin32のAPI叩いて作ってたころを思い出した次第。20年は前だなー。
ってことで、SQLite3のmoduleは、こんなことをすれば良いらしいです。
row_factoryという妖しい割り込みベクタ的な。
#---------------------------------------
# open
#---------------------------------------
def open(self,dbname=None):
if dbname != None:
dn = dbname
else:
dn = self.dbname
try:
self.conn = sqlite3.connect(dn)
self.conn.row_factory = self.dict_factory
except Exception as e:
return False
return True
#---------------------------------------
def dict_factory(self,cursor,row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
#---------------------------------------
ところで、、”割り込みベクタ”って最近言わなくないっすか?
しかも、、割り込みっていうほどでも無いっすよね。これ。
単なる凍るバクですし。
雑でした^^;