2

ユーザーがWebインターフェースを介して入力したデータを保存するモデルであるdjangoアプリがあります。

モデル インスタンスを表示/保存するときに、サード パーティの REST API を使用する必要があります。私はこれを行う方法を知っていますが、私が確信していないのは、このコードがdjangoアプリでどこにあるべきかです。

私の直感は、このコードをモデルクラスに入れることですが、ビューを使用することもできます...よくわかりません。

これは以前にどのように行われたのですか。これを行う方法を尋ねる投稿がたくさんありますが、コードを配置するのに最適な場所を述べているものはありません。

どんなガイダンスもありがたく受け取られます。

乾杯

4

1 に答える 1

3

これは主観的な質問なので、ここに主観的な答えがあります。

まず、この外部RESTAPIと相互作用するコードが別のモジュールに存在することを確認します。たとえば、辞書APIから単語の定義を取得する場合、このAPIと通信するすべてのコードは、理想的には別のdictionaryモジュールにあり、ビューにインポートできます。

次に、models.pyアプリケーションのデータモデルを宣言し、このモデルの操作を定義するだけで済みます。彼らは、要求/応答サイクル、ファイルの読み取り、テンプレートのレンダリング、HTTP呼び出しの作成などを気にする必要はありません。このロジックでは、ビューからこれらのREST API呼び出しを行い、必要に応じて、返されたデータをモデルに渡す必要があります。

そして最後に、DjangoアプリからREST呼び出しを行うことについてよく考えてください。Pythonはデフォルトで同期(ブロッキング)I / Oを実行します。つまり、アプリがREST呼び出しの終了を待機している限り、着信HTTPリクエストを処理できません。ユーザーが多すぎない場合、これは問題ではありませんが、スケーリングが必要なアプリでは注意が必要です。Python用の非同期I/Oライブラリを調べることをお勧めします。

于 2013-03-19T19:06:20.103 に答える