みんなのPython Webアプリ編(途中まで)読んだ

恥ずかしながら、Webアプリにおけるデータベースの有用性がこの本を読んで初めて理解できた。Webアプリでは不特定多数が同一ファイルにアクセスする可能性があるわけだ。
Webアプリの方に目を向けたおかげで、やっとデータベースも身近な存在になってきた。これまでSQLも自分とは無関係だろうと思っていたのだが。

あと、シリアライズとかpickleモジュールの存在を初めて知る。
これは便利。これを使えばデータをファイルに一括保存するとき、フォーマットを考える必要ないじゃないか。

pickleモジュールの使い方

  • データの保存
import pickle

d1 = {'spam': 2, 'ham': 1, 'egg': 3}  # データを辞書にまとめる

file = open('./save.dat', 'wb')
pickle.dump(d1, file)        # ファイルへ書き出し
  • データの読み込み
import pickle

file = open('./save.dat', 'rb')
d2 = pickle.load(file)               # ファイルから読み込み
print d2['spam']
  • ファイルsave.datを開いてみると、このようになっていた。
(dp0
S'egg'
p1
I3
sS'ham'
p2
I1
sS'spam'
p3
I2
s.(

pickleと似たようなものにshelveモジュールというものもある。

shelveモジュールの使い方

  • データの保存
import shelve

dbase = shelve.open('./data.dat')    # ファイルdata.datを開く
dbase['spam'] = 5
dbase['egg'] = 8
dbase['bagg'] = 7             # 保存!
  • データの読み込み
import shelve

dbase = shelve.open('./data.dat')
print dbase

ファイルdata.datを開いてもバイナリデータなので読めない。