0

フォーム データを保存しようとしていますが、Python のネイティブpickleを使用するか、何らかの XML シリアライザーを使用するかを考えています。私はdjangoのシリアライザーを使用したかったのですが、これらは通常のPython辞書/オブジェクトではなく、機知に富んだモデルで動作するように見えます.

シリアル化したいオブジェクトは、ほぼ完全に文字列 (および場合によっては整数) で構成され、次のようになります。

data = {
  'var1': "foo",
  'var2': "bar",
  'var3': ['bar', 'foo', 'moo', 'fish'],
  'var4': 42
}

将来のある時点で、これらの値に基づいて HTML ページをレンダリングできるようにする必要があるため、これを保存します。

pickle 化されたオブジェクトの保存を続行する必要がありますか?それとも XML として保存する必要がありますか? django の外部から XML にアクセスするつもりはないので、XML を使用するメリットはありません。私は間違った決断をしていますか?

いくつかのメモ:

  • これらのフォームの履歴を無期限に保持したいので、これはセッションまたはキャッシュに保存したいものではありません
  • フォームの形式/レイアウトは変更される可能性があるため、この情報を保持するデータベース スキーマを作成することは現実的ではありません。
4

2 に答える 2

2

シリアライゼーション形式を選択する際には考慮すべきことがたくさんありますが、質問で必要なシリアライゼーションの特性を実際に提供していないため、適切な提案をすることは困難です. そうは言っても、Python の外部でデータを読み取る必要がなく、セキュリティの心配がない場合は、pickle が妥当なデフォルトの選択です。

于 2012-07-06T21:31:19.340 に答える
1

json はどうですか?軽量で、読みやすく、移植性があり、シリアライゼーション/デシリアライゼーションは、基本的な型 (文字列、int、辞書、リスト) に対して非常に単純です。

私は正規化された db スキーマに固執するようにできる限り努力しますが、シリアル化されたものを格納することが実際には「それほど悪い」解決策ではない場合は、json を使用します。少なくとも、ほとんどのプログラミング言語でデータを使用できます。

于 2012-07-07T14:48:26.730 に答える