0

質問

Django では、API からのデータ (データベースに保存する必要がない) をビューで使用する場合、次のいずれかを優先する理由はありますか?

  1. API データ (json) を json ディクショナリに変換してテンプレートに渡す
  2. API データ (json) を models.py から適切なモデル オブジェクトに変換し、それをテンプレートに渡します。

これまで考えたこと

  • パフォーマンス: 両方のアプローチの時間を測定し、25 回の反復で平均しました。API 応答をモデル オブジェクトに変換すると、約 50 ミリ秒遅くなりました (0.4117 秒対 0.4583 秒、+11%)。これには、タイミング レンダリングは含まれません。
  • このデータをデータベースに保存しないと、API のデータとの多対多の関係を作成できなくなります (M2M 関係を追加する前にオブジェクトを保存する必要があります)。アプリ
  • DRY: この API データを複数のビューで使用していることに気付いた場合、すべての消費/クリーニングなどを配置すると便利な場合があります。__init__モデルの適切なオブジェクトのコード。

よろしくお願いします。

4

2 に答える 2

2

これをモデル オブジェクトに変換しても、データベースに保存する必要はありません。

また、保存したくないことが確実な場合は、models.py に配置して Django モデルにするのは間違った考えです。おそらく、モデルと間違えないように、resources.pyなどの通常のPythonクラスである必要があります。変換が遅い(非常に小さい)可能性があるため、私はそのような方法を好みますが、カスタムコンストラクターだけでなく、他のメソッドやプロパティも追加できるため、非常に役立ちます。また、通常のクラスやオブジェクトを使用するときにも便利で整理されています。

于 2012-10-05T16:25:29.190 に答える
0

辞書のリストをテンプレートに直接渡します。モデルで使用する必要がある場合は、.values()代わりに辞書のリストを取得するために使用してください。

于 2012-10-05T16:25:13.347 に答える